GC分代的基本假設:絕大部分對象的生命週期都很是短暫,存活時間短。算法
「分代收集」(Generational Collection)算法,把Java堆分爲新生代和老年代,這樣就能夠根據各個年代的特色採用最適當的收集算法指針
在新生代中,每次垃圾收集時都發現有大批對象死去,只有少許存活,那就選用複製算法,只須要付出少許存活對象的複製成本就能夠完成收集orm
老年代中由於對象存活率高、沒有額外空間對它進行分配擔保,就必須使用「標記-清理」或「標記-整理」算法來進行回收。cdn
若是說收集算法是內存回收的方法論,垃圾收集器就是內存回收的具體實現對象