GC算法(Java)

1.標(biāo)記清除算法

? ? ? ?分為標(biāo)記和清除兩個(gè)階段:首先標(biāo)記出所有需要回收的對(duì)象,在標(biāo)記完成后統(tǒng)一回收所有被標(biāo)記的對(duì)象。

? ? ? ?缺點(diǎn):效率不高并且會(huì)產(chǎn)生不連續(xù)的內(nèi)存碎片。


2.復(fù)制算法

? ? ? ?把內(nèi)存空間劃為兩個(gè)區(qū)域,每次只使用其中一個(gè)區(qū)域。垃圾回收時(shí),遍歷當(dāng)前使用區(qū)域,把正在使用中的對(duì)象復(fù)制到另外一個(gè)區(qū)域中。算法每次只處理正在使用中的對(duì)象,因此復(fù)制成本比較小,同時(shí)復(fù)制過(guò)去以后還能進(jìn)行相應(yīng)的內(nèi)存整理,不會(huì)出現(xiàn)“碎片”問(wèn)題。

? ? ? ? 優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單,運(yùn)行高效。

? ? ? ? 缺點(diǎn):會(huì)浪費(fèi)一定的內(nèi)存。一般新生代采用這種算法。


3.標(biāo)記整理算法

? ? ? ?標(biāo)記階段與標(biāo)記清除算法一樣。但后續(xù)并不是直接對(duì)可回收的對(duì)象進(jìn)行清理,而是讓所有存活對(duì)象都向一端移動(dòng),然后清理。

? ? ? ?優(yōu)點(diǎn):是不會(huì)造成內(nèi)存碎片。


參考鏈接:https://yemengying.com/2016/05/13/jvm-GC/

最后編輯于
?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虛擬機(jī)(JVM)垃圾回收器提供...
    簡(jiǎn)欲明心閱讀 90,374評(píng)論 17 311
  • 一. 垃圾回收的意義 在C++中,對(duì)象所占的內(nèi)存在程序結(jié)束運(yùn)行之前一直被占用,在明確釋放之前不能分配給其它對(duì)...
    Stan_Z閱讀 2,055評(píng)論 0 25
  • 聲明:原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。http://www.itdecent.cn/u/e02df63eaa87 垃圾收...
    唐影若凡閱讀 1,154評(píng)論 1 6
  • 原文閱讀 前言 這段時(shí)間懈怠了,罪過(guò)! 最近看到有同事也開(kāi)始用上了微信公眾號(hào)寫(xiě)博客了,挺好的~給他們點(diǎn)贊,這博客我...
    碼農(nóng)戲碼閱讀 6,157評(píng)論 2 31
  • JVM架構(gòu) 當(dāng)一個(gè)程序啟動(dòng)之前,它的class會(huì)被類(lèi)裝載器裝入方法區(qū)(Permanent區(qū)),執(zhí)行引擎讀取方法區(qū)的...
    cocohaifang閱讀 1,845評(píng)論 0 7

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