垃圾回收算法与 JVM 垃圾回收器综述
垃圾回收算法及其分类
垃圾回收是指在程序执行过程中,自动识别并回收那些不再使用的内存的一种机制。垃圾回收算法主要分为标记-清除算法、复制算法、标记-整理算法和分代回收算法。
标记-清除算法
标记-清除算法是一种基本的垃圾回收算法。其过程分为标记和清除两个阶段。算法首先从根节点出发,对所有从根节点可达的对象进行标记。标记完成后,将没有标记的对象视为垃圾,进行清除操作,回收内存空间。
复制算法
复制算法是为解决标记-清除算法中的内存碎片问题而提出的。复制算法将内存空间分为两部分,每次只使用其中的一部分。当这部分内存空间用完时,将还存活的对象复制到另一块内存空间中,然后将已使用的内存空间进行清理。通过这种方式,实现了内存回收,并解决了碎片问题。
标记-整理算法
标记-整理算法也是为解决标记-清除算法中的内存碎片问题而提出的。标记-整理算法在标记-清除算法的基础上进行了优化。算法先标记所有的存活对象,然后将它们向一端移动,然后清理掉边界以外的所有内存空间,以实现内存的整理。