一级做a爱片,色站综合,99偷拍视频精品一区二区,亚洲精品色无码AV

當前位置:

java認證考試基礎(chǔ)串講資料JAVA垃圾收集的算法

發(fā)表時間:2015/4/8 11:20:36 來源:互聯(lián)網(wǎng) 點擊關(guān)注微信:關(guān)注中大網(wǎng)校微信
關(guān)注公眾號

垃圾收集的算法分析

java語言規(guī)范沒有明確地說明jvm使用哪種垃圾回收算法,但是任何一種垃圾收集算法一般要做2件基本的事情:(1)發(fā)現(xiàn)無用信息對象;(2)回收被無用對象占用的內(nèi)存空間,使該空間可被程序再次使用。

大多數(shù)垃圾回收算法使用了根集(rootset)這個概念(有了這個概念應(yīng)該就能解決面試中被問到的互為引用的孤獨島的情況);所謂根集就是正在執(zhí)行的java程序可以訪問的引用變量的集合(包括局部變量、參數(shù)、類變量),程序可以使用引用變量訪問對象的屬性和調(diào)用對象的方法。垃圾收集首選需要確定從根開始哪些是可達的和哪些是不可達的,從根集可達的對象都是活動對象,它們不能作為垃圾被回收,這也包括從根集間接可達的對象。而根集通過任意路徑不可達的對象符合垃圾收集的條件,應(yīng)該被回收。下面介紹幾個常用的算法。

1、引用計數(shù)法(referencecountingcollector)

引用計數(shù)法是唯一沒有使用根集的垃圾回收得法,該算法使用引用計數(shù)器來區(qū)分存活對象和不再使用的對象。一般來說,堆中的每個對象對應(yīng)一個引用計數(shù)器。當每一次創(chuàng)建一個對象并賦給一個變量時,引用計數(shù)器置為1。當對象被賦給任意變量時,引用計數(shù)器每次加1。當對象出了作用域后(該對象丟棄不再使用),引用計數(shù)器減1,一旦引用計數(shù)器為0,對象就滿足了垃圾收集的條件。

基于引用計數(shù)器的垃圾收集器運行較快,不會長時間中斷程序執(zhí)行,適宜地必須實時運行的程序。但引用計數(shù)器增加了程序執(zhí)行的開銷,因為每次對象賦給新的變量,計數(shù)器加1,而每次現(xiàn)有對象出了作用域生,計數(shù)器減1。

2、tracing算法(tracingcollector)

tracing算法是為了解決引用計數(shù)法的問題而提出,它使用了根集的概念?;趖racing算法的垃圾收集器從根集開始掃描,識別出哪些對象可達,哪些對象不可達,并用某種方式標記可達對象,例如對每個可達對象設(shè)置一個或多個位。在掃描識別過程中,基于tracing算法的垃圾收集也稱為標記和清除(mark-and-sweep)垃圾收集器.

3、compacting算法(compactingcollector)

為了解決堆碎片問題,基于tracing的垃圾回收吸收了compacting算法的思想,在清除的過程中,算法將所有的對象移到堆的一端,堆的另一端就變成了一個相鄰的空閑內(nèi)存區(qū),收集器會對它移動的所有對象的所有引用進行更新,使得這些引用在新的位置能識別原來的對象。在基于 compacting算法的收集器的實現(xiàn)中,一般增加句柄和句柄表。

4、coping算法(copingcollector)

該算法的提出是為了克服句柄的開銷和解決堆碎片的垃圾回收。它開始時把堆分成一個對象面和多個空閑面,程序從對象面為對象分配空間,當對象滿了,基于coping算法的垃圾收集就從根集中掃描活動對象,并將每個活動對象復(fù)制到空閑面(使得活動對象所占的內(nèi)存之間沒有空閑洞),這樣空閑面變成了對象面,原來的對象面變成了空閑面,程序會在新的對象面中分配內(nèi)存。

一種典型的基于coping算法的垃圾回收是stop-and-copy算法,它將堆分成對象面和空閑區(qū)域面,在對象面與空閑區(qū)域面的切換過程中,程序暫停執(zhí)行。

5、generation算法(generationalcollector)

stop-and-copy垃圾收集器的一個缺陷是收集器必須復(fù)制所有的活動對象,這增加了程序等待時間,這是coping算法低效的原因。在程序設(shè)計中有這樣的規(guī)律:多數(shù)對象存在的時間比較短,少數(shù)的存在時間比較長。因此,generation算法將堆分成兩個或多個,每個子堆作為對象的一代 (generation)。由于多數(shù)對象存在的時間比較短,隨著程序丟棄不使用的對象,垃圾收集器將從最年輕的子堆中收集這些對象。在分代式的垃圾收集器運行后,上次運行存活下來的對象移到下一最高代的子堆中,由于老一代的子堆不會經(jīng)常被回收,因而節(jié)省了時間。

6、adaptive算法(adaptivecollector)

在特定的情況下,一些垃圾收集算法會優(yōu)于其它算法。基于adaptive算法的垃圾收集器就是監(jiān)控當前堆的使用情況,并將選擇適當算法的垃圾收集器。

編輯推薦

java認證考試基礎(chǔ)串講資料匯總

JAVA認證考試報考指南 / 更多JAVA考試資料

(責(zé)任編輯:xy)

2頁,當前第1頁  第一頁  前一頁  下一頁
最近更新 考試動態(tài) 更多>
午夜伦理在线| 18禁无码在线| 无码av中文| 250久久新| 亚洲Av之男人的天堂| 欧美一级毛一级a| 久久久久久成人| 欧美性大战久久| 国产成人精品在线| 久草热久草视频免费| 永井黑人上司中文字幕| 内谢XXXXX老少配| 全国18禁网站| 亚洲乱码一卡二卡卡3卡4卡 | 欧美成人看片黄A免费看| 免费a成人| 61色播,com| 国产综合丁香五月| 亚洲AV三区| 永久域名精品在线| 久久婷婷综合色丁香五月| 男男三级在线| av小说网站| www.av免费播放| 亚洲精品无码少妇30P| 牛牛720在线视频| 69九色aⅴ综合| 91熟妇| 六月婷婷黄色网站| 黄色精品视频| 亚洲综合一本到| 色婷婷精品国产| 中文无码日韩欧免费视频| 精品欧美一级片| 丁香七月av| 激情小说DVD| AV鲁啊鲁| 麻豆在线播放| av在线播放免费| 第四色欧美色图| 成人国产精品免费观看视频|