java垃圾回收算法

垃圾回收是對堆內存里的沒有任何引用指向的對象進行回收

垃圾確定方式:1.引用計數(shù)

? ? ? ? ? ? ? ? ? ? ? ? ? 2.正向可達(使用這個)

垃圾回收算法:

1.標記-清除(Mark-Sweep)

? ? ? 此算法執(zhí)行分兩階段。第一階段從引用根節(jié)點開始標記所有被引用的對象,第二階段遍歷整個堆,把未標記的對象清除。此算法需要暫停整個應用,同時,會產生內存碎片

2.復制(Copying)

? ? ? 將內存分成兩份,每次GC都會重新整理使用的一半的內存區(qū)域,并賦值給另一半,效率提高,但是浪費了內存。

3.標記-整理(Mark-Compact)

? ? ? 結合了前兩個算法的優(yōu)點,第一步標記,第二步整理。

4.分代(Generational Collecting)

? ? ? 基于對對象生命周期分析后得出的垃圾回收算法。把對象分為年青代、年老代、持久代,對不同生命周期的對象使用不同的算法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容