标记 —— 清除算法
直接标记清除
缺点:
效率低
产生大量的空间碎片
复制算法
把空间分成两块,将存活对象放在其中一半上,每次只对其中一块进行 GC。循环往复
缺点:
空间利用率低
标记-整理算法
主要是把存活对象移到内存的一端。
分代回收
根据存活对象划分几块内存区,分为新生代和老年代
根据各个年代的特点制定相应的回收算法。
新生代
每次垃圾回收都有大量对象死去,只有少量存活,选用复制算法比较合理。
老年代
老年代中对象存活率较高、没有额外的空间分配对它进行担保。
使用 标记 —— 清除 或者 标记 —— 整理 算法回收。