GC将收集的对象A和B,如果他们只引用对方?(Will GC collect object a an

2019-09-17 17:21发布

GC将收集的对象A和B,如果他们只引用对方? 你可以帮助解释原因或给予referece文档来解释逻辑。 非常感谢

Answer 1:

是的,他们将成为候选人,如果不存在对多强引用GC。

需要注意的是不只是任何强烈的引用将在内存中保留的对象是很重要的。 这些必须是从垃圾收集根连锁引用 。 GC根是一类特殊的变量,包括:

  • 在栈上临时变量(任何线程)
  • 静态变量(任何类)
  • 从JNI本机代码特别引用

请参见本文档(§A.3.4无法到达和§A.4.2例GC用了WeakReference)



Answer 2:

如果对象A和B引用彼此,并且不干扰其它目的,它们形成对象的孤岛 。 这种群体也被垃圾收集器收集。 看看这个线程。



文章来源: Will GC collect object a and b if they only have reference to each other?