了解java中的垃圾收集器

时间:2017-10-10 16:39:16

标签: java garbage-collection

我试图了解并发标记和扫描GC算法。我正在阅读以下explanationenter image description here

问题: 那么扫描究竟意味着什么?它是实际的垃圾收集(回收无法访问的对象和释放内存吗?)?或者它意味着不同的东西?

如果是这样,如果 省略扫描阶段 ,我们会遇到什么样的麻烦?

1 个答案:

答案 0 :(得分:2)

在链接的说明中,实际上没有描述“扫描”步骤。

粗略地说:

  1. 标记:找到“根”对象,然后执行对象图的遍历,标记在遍历期间触摸的所有对象。< / LI>
  2. 扫描:从A到Z遍历您的堆并删除所有未标记的对象(扫描通过您的堆;或扫描堆中未标记的对象。)
  3. 如果您不进行扫描,则内存不会被释放,只需标记为空闲(想想操作系统中的“垃圾桶” - &gt;标记=放入垃圾箱;扫描=从垃圾箱中删除)。< / p>