标记清除

2020-11-07  本文已影响0人  宇宙之一粟

垃圾回收过程经常使用(也是最简单)的算法是标记清除(mark and sweep)。整个过程分为三步。

(1) 迭代分配表,把每个对象都标记为“已死亡”。

(2) 从指向堆的局部变量开始,顺着遇到的每个对象的全部引用向下,每遇到一个之前没见过的对象或数组,就把它标记为“存活”。像这样一直向下,直到找出能从局部变量到达的所有引用为止。(3) 再次迭代分配表,回收所有没标记为“存活”的对象在堆中占用的内存,然后把这些内存放回可用内存列表中,最后把这些对象从分配表中删除。

上一篇 下一篇

猜你喜欢

热点阅读