GC垃圾回收机制

1:标记—清除 mark-sweep
过程:标记可回收对象,进行清除
缺点:标记和清除效率低,清除后会产生内存碎片
2:复制算法
过程:将内存划分为相等的两块,将存活的对象复制到另一块内存,把已经使用的内存清理掉
缺点:使用的内存变为了原来的一半
进化:将一块内存按8:1的比例分为一块eden区(80%)和两块survivor区(10%)【survivor区=from区+to区】
每次使用eden和一块survivor,回收时,将存活的对象一次性复制到另一块survivor上,如果另一块survivor空间不足,则使用分配担保机制存入老年代
3:标记—整理 mark—compact
过程:所有存活的对象向一端移动,然后清除掉边界以外的内存

4:分代收集算法
过程:将堆分为新生代和老年代,根据区域特点选用不同的收集算法,如果新生代朝生夕死,则采用复制算法,老年代采用标记清除,或标记整理

原文地址:https://www.cnblogs.com/healkerzk/p/13059917.html