天天看點

JVM垃圾回收根搜尋的三種算法

關于垃圾回收,總遇到總記不住,做下總結,加深印象,有不對不完整的歡迎大家批評指正

JDK1.2之後,垃圾回收采用跟搜尋算法,有三種算法:1、标記清除算法  2、複制算法  3、标記整理算法

1、标記清除算法

從根集合進行掃描,對存活的對象進行标記,标記完後,再重新掃描整個空間,對未标記的對象進行回收

優點:存活對象多的時候,比較高效

缺點:因為是直接回收,容易造成記憶體碎片

2、複制算法

從跟集合進行掃描,把存活對象複制到一個新的未使用的空間當中,把目前空間全部回收

優點:當存活對象較少時,非常高效

缺點:因為需要一塊新的空間進行對象移動,帶來成本

3、标記整理算法

進行标記清除後,移動對象,并更新對應指針

優點:不會産生記憶體碎片

缺點:由于需要移動對象,是以成本較高