名詞解釋html
簡單地說,新對象出生在Eden,若是Eden不夠了,觸發gc(Minor GC)把存活的對象搬到s0,下次gc又搬到s1,再下次又搬到s0,如此往復,一個對象被搬到必定次數就是幾歲,達到這個閾值就進入老年代。(默認15歲,就是一個狗狗的壽命)老年代滿了也會gc(Major GC/Full GC)算法
顧名思義,兩個階段,先標記不被引用的對象,再清除掉,騰出內存。就像把圍棋裏被吃掉的棋子提出來。
缺點:空間碎片多spa
把空間等分兩塊,一塊滿了將全部活着的對象複製到另外一個塊空間,再一次清理掉以前的空間。
優勢:解決了碎片問題
缺點:可用內存變低了線程
標記以後,把存活的對象都移動到內存一端,把端邊界之外的內存空間清理掉。
沒有碎片,也能充分利用內存空間。老年代一般使用這種算法。htm
引用計數爲空的對象:每一個對象有引用計數器,有引用就+1,引用失效就-1,爲0則不可能再被使用。
GC root引用鏈搜索不到的對象:以GC root的對象爲起點,沿它的引用搜索,引用鏈中搜索不到的對象也不會被使用。對象
參考文章:
https://www.cnblogs.com/zhouy...
https://www.cnblogs.com/wjtai...blog