三色标记原理
我们首先看一张图,大概就会对 三色标记法有一个大致的了解:
原理:
首先把所有的对象都放到白色的集合中
⚫ 从根节点开始遍历对象,遍历到的白色对象从白色集合中放到灰色集合中
⚫ 遍历灰色集合中的对象,把灰色对象引用的白色集合的对象放入到灰色集合中,同时把遍历过的灰色集合中的对象放到黑色的集合中
⚫ 循环步骤 3,知道灰色集合中没有对象
⚫ 步骤 4 结束后,白色集合中的对象就是不可达对象,也就是垃圾,进行回收
我们首先看一张图,大概就会对 三色标记法有一个大致的了解:
原理:
首先把所有的对象都放到白色的集合中
⚫ 从根节点开始遍历对象,遍历到的白色对象从白色集合中放到灰色集合中
⚫ 遍历灰色集合中的对象,把灰色对象引用的白色集合的对象放入到灰色集合中,同时把遍历过的灰色集合中的对象放到黑色的集合中
⚫ 循环步骤 3,知道灰色集合中没有对象
⚫ 步骤 4 结束后,白色集合中的对象就是不可达对象,也就是垃圾,进行回收