垃圾收集算法
标记-清除算法
先标记出需要回收的对象,在标记完成后统一回收所有被标记的对象。标记过程效率较低,标记清除后会产生大量的不连续碎片。
复制算法
为了解决效率问题,复制算法采用的是将内存分为大小相同的块,每次使用其中的一块,当这一块的内存使用完后,将还存活的对象复制到另外一块内存中,然后再把使用过的空间一次性清理掉,这样的处理方法就是对内存区间的一半进行回收。
标记-整理算法
根据老年代特点设计的一种标记算法,标记过程与标记-清除算法一致,但是后续步骤不是直接对可回收对象进行回收,而是让存活的对象向一端移动,然后直接清理掉边界以外的内存。
分代收集算法
根据对象存活周期的不同将内存分为极快,根据各个年代特点选择合适的垃圾回收算法。在新生代中,每次收集都会有大量的对象死去,可以选择复制算法,付出一半的内存空间实现对象生命周期的高频转换。对于老年代对象,普遍存活几率较高,其额外空间也会随着时间推进而逐渐减少,此时可以选择标记-清除或标记-整理算法进行垃圾收集。
文章参考自:https://www.cnblogs.com/qianguyihao/p/4744233.html