标记 - 清除算法(Mark-Sweep)可以说应该是最基础的收集算法了在线课堂。从字面意思很好理解,算法的过程分为标记过程和清楚过程。首先标记出所有需要回收的对象,在标记完了之后,对标记对象进行统一的回收工作。哪些对象需要标记,哪些对象不需要标记,这个再上一篇文章中进行了详细的介绍,可以回顾再了解下。
这个算法的缺点也非常明显,内存中的被标记的数据不一定都是连续,因此标记清楚之后,内存中会产生大量的内存碎片,碎片的存在也会导致在后续分配较大对象时候找不到足够的连续空间,导致内存不足在线课堂。还有一个问题,便是标记和清楚的效率都不高。
但之所以说这是最基础的收集算法,是因为后续是算法基本上都是由此改进得来的在线课堂。