Java Full GC - 浮动垃圾?

时间:2018-05-20 11:25:46

标签: java garbage-collection

目前我正在学习Java中的GC,但我需要一些澄清。假设我们的情况如下:

enter image description here

根据这个website首先运行DefNew,然后运行Tenured GC。在那种情况下:

  • 在DefNew对象A中有来自老一代的引用,这将不会被收集。
  • 在Tenured中(如果我说得对),对象B不会被删除,因为有来自Young Generation(对象A)的引用。

它毕竟是如何运作的?我在考虑脏卡,但只会标记对象C,因为它已被更改(删除了对象B的引用)。

1 个答案:

答案 0 :(得分:0)

摘自有关"nepotism" problem

的文章

这是“病理性的”,因为任何提升的节点都将导致所有后续节点的提升,直到GC解决问题为止。

所以我想它将首先被提升为老一代,然后被收集。