您好,登錄后才能下訂單哦!
常用的垃圾回收算法有四種:標記-清除算法、復(fù)制算法、標記-整理算法、分代收集算法。
1.標記-清除算法
分為標記和清除兩個階段,首先標記出所有需要回收的對象,標記完成后統(tǒng)一回收所有被標記的對象,如下圖。
缺點:標記和清除兩個過程效率都不高;標記清除之后會產(chǎn)生大量不連續(xù)的內(nèi)存碎片。
2.復(fù)制算法
把內(nèi)存分為大小相等的兩塊,每次存儲只用其中一塊,當這一塊用完了,就把存活的對象全部復(fù)制到另一塊上,同時把使用過的這塊內(nèi)存空間全部清理掉,往復(fù)循環(huán),如下圖。
缺點:實際可使用的內(nèi)存空間縮小為原來的一半,比較適合。
3.標記-整理算法
先對可用的對象進行標記,然后所有被標記的對象向一段移動,最后清除可用對象邊界以外的內(nèi)存,如下圖。
4.分代收集算法
把堆內(nèi)存分為新生代和老年代,新生代又分為 Eden 區(qū)、From Survivor 和 To Survivor。一般新生代中的對象基本上都是朝生夕滅的,每次只有少量對象存活,因此采用復(fù)制算法,只需要復(fù)制那些少量存活的對象就可以完成垃圾收集;老年代中的對象存活率較高,就采用標記-清除和標記-整理算法來進行回收。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。