垃圾收集算法——标记-清除算法(Mark-Sweep)。

        最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如同他的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。之所以说他是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行改进而得到的。他的主要不足有两个:一个是效率问题,标记和清除两个过程的效率都不高;另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大的对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。标记-清除算法的执行过程如下图所示。

垃圾收集算法——标记-清除算法(Mark-Sweep)。