GC原理以及實(shí)現(xiàn)方式

  • 原理
      內(nèi)存空間的回收
  • 實(shí)現(xiàn)方式
      1.標(biāo)記清除法(since 1960)
       
    image.png

       分為兩個(gè)階段
        - 標(biāo)記階段:標(biāo)記出可以回收的對(duì)象。
        - 清除階段:回收被標(biāo)記的對(duì)象所占用的空間
    兩個(gè)缺點(diǎn) 標(biāo)記和清除的效率都不高,容易產(chǎn)生大量不連續(xù)的內(nèi)存碎片,給后續(xù)大對(duì)象沒有足夠的連續(xù)的空間從而提前觸發(fā)新的一次垃圾收集動(dòng)作.
    垃圾算法都是在此基礎(chǔ)上進(jìn)行修改的
    2.復(fù)制算法(新生代比較好)
    只使用一半內(nèi)存,要回收的時(shí)候把"活"著的拷貝過去,存活的少復(fù)制的時(shí)間少,存活的多復(fù)制的時(shí)間長.
      3.標(biāo)記壓縮算法
       新生代有比較好的復(fù)制算法,老年代存活率比較高,這樣會(huì)有多的復(fù)制才做不合適,標(biāo)記壓縮算法是將存活的對(duì)象壓縮到內(nèi)存的一端,使他們緊湊的排序到一起,然后對(duì)邊界以外的內(nèi)存進(jìn)行回收,結(jié)束后,已用和未用都再各自的一邊.解決清除算法效率低和容易產(chǎn)生大量內(nèi)存碎片的問題.
      4.引用計(jì)數(shù)法
        它的引用計(jì)數(shù)器就加 1 ,引用失效時(shí)就減 1 。當(dāng)引用計(jì)數(shù)器中的值變?yōu)?0 ,則該對(duì)象
    就不能被使用,變成了垃圾。假如A類里面有B類 B類里面有A類,計(jì)數(shù)器就不能為0,就無法被回收 
      5.根搜索法(可達(dá)性分析)
      基本思想就是選定一些對(duì)象作為 GC Roots,以Roots為起點(diǎn)開始向下搜索,當(dāng)一個(gè)對(duì)象不可達(dá)時(shí),即證明了他可以被回收處理
      6.分代收集算法?。?a target="_blank">https://blog.csdn.net/en_joker/article/details/79737533)
      引用文中的一個(gè)圖
    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容