Java虚拟机深入学习之三: Java虚拟机的垃圾收集算法

一   标记-清除算法(Mark-Sweep)

       首先标记出所有需要回收的对象,标记完成后统一回收。 

       主要缺点: 1. 标记和清除效率都很低    2. 产生大量不连续的内存碎片,导致后面分配大内存空间失败



二   复制算法

       将可用内存划分为大小相等的两块, 每次只使用其中一块。 当这块用完后,就将还存活对象复制到另外一块上面,再把已经使用的内存空间一次清理掉。

        主要缺点:  代价太高,至少一半的内存不能使用。



三   标记-整理算法

      标记过程和标记-清除算法一致,但是后续步骤是让所有存活的对象都向一端移动,然后清理掉边界以外的内存。


四   分代收集算法

        当前商业虚拟机都采用此算法,分为不同对象代,去进行不同管理。

你可能感兴趣的:(Java虚拟机深入学习之三: Java虚拟机的垃圾收集算法)