概述
标记清除算法, 描述起来很简单, 从名字上就能看出, 分为两个阶段:
标记阶段: 遍历所有对象, 将活动对象都打上标记
清除阶段: 遍历堆, 将没有标记的对象释放掉.
介绍完毕, 本文结束....for(o in objs){
add_mark(o)
}
}
将根集合的所有对象都调用一遍, 标记完成....清除
标记时遍历的是活动对象, 清除阶段呢? 遍历堆. 将堆上所有非活动对象清除....为了解决标记清除算法的问题, 衍生出了位图标记法, BiBOP法 ,延迟清除算法等等个人感觉很鸡肋(好吧, 或许是我未得其精髓).
----
为了解决标记清除的问题, 有衍生出了 标记复制 , 标记整理...算法, 之后再议.