關于垃圾回收,總遇到總記不住,做下總結,加深印象,有不對不完整的歡迎大家批評指正
JDK1.2之後,垃圾回收采用跟搜尋算法,有三種算法:1、标記清除算法 2、複制算法 3、标記整理算法
1、标記清除算法
從根集合進行掃描,對存活的對象進行标記,标記完後,再重新掃描整個空間,對未标記的對象進行回收
優點:存活對象多的時候,比較高效
缺點:因為是直接回收,容易造成記憶體碎片
2、複制算法
從跟集合進行掃描,把存活對象複制到一個新的未使用的空間當中,把目前空間全部回收
優點:當存活對象較少時,非常高效
缺點:因為需要一塊新的空間進行對象移動,帶來成本
3、标記整理算法
進行标記清除後,移動對象,并更新對應指針
優點:不會産生記憶體碎片
缺點:由于需要移動對象,是以成本較高