GC垃圾回收機制

垃圾回收主要發生在堆區

先了解一下堆區的結構

在這裏插入圖片描述
首先GC主要分爲大GC和小GC,小GC主要分佈在新生區,大GC
主要發生在養老區,當伊甸區達到最大容量的百分之七十的時候就會觸發小GC,當在伊甸區的每個對象熬過一次就會到達倖存者區,倖存者區可以分爲from區和to區,誰是空的誰就是to區,當在倖存者區熬過一定次數的對象就會到達養老區,當養老區滿時,就會觸發大GC。

GC算法一般包括 複製算法,標記清除算法,標記整理算法。

1.新生代一般使用複製算法

複製算法:將活動對象複製到另一個空間,然後把原來的空間清空。
優點:佈局比標記清除算法要整齊
缺點:當存活對象過多時,耗費大量的內存。

2.老年代一般都是標記整理和標記清除混合使用。

標記清除算法:對存活的對象進行標記,然後對掃描整個內存,回收未被標記的對象。
優點:不會有額外的 空間
缺點:進行兩次掃描,耗時嚴重。會產生大量的碎片。

標記整理算法:標記所有的存活對象,然後整理所有存活的對象的引用地址。
優點:內存利用率比較高。
缺點:效率是最慢的。

總結:在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章