GC常用算法?
1.標記-標記清除算法,標記壓縮算法,復制算法,分代收集算法。(JVM采用的是分代收集算法)
- 標記-清除算法
給每個對象存儲一個標記位,記錄對象的狀態(死/活),兩個階段,
一.標記階段:檢查對象的標記位的狀態,判斷是否死亡。
二.清理階段:將死亡的對象清理掉。
- 標記-壓縮算法
是標記-清除算法的一個改進版。兩個階段:
一:標記階段:檢查對象的狀態,判斷是否死亡,
二:將所有存活的對象整理放到另外一處空間,把剩下的對象清除掉
- 復制算法
會將內存平均分兩塊,每次只使用其中的一塊。當這塊內存存滿了,就會將這個內存存活的對象復制到另外一個內存中,將剛才那塊內存清空。
- 分代收集算法:
堆如果細分,還可分為新生代和老年代
新生代里對象存活時間短,所有采用的算法是復制算法,
老年代,存活率高(生存時間長),所以使用標記-整理,或標記-清除算法

浙公網安備 33010602011771號