GC是否会收集对象a和b,如果它们只相互引用?

Jac*_*cky 5 java garbage-collection

GC是否会收集对象a和b,如果它们只相互引用?你能帮助解释一下原因,或者给一个参考文档来解释这个逻辑.非常感谢

ala*_*inm 5

是的,如果GC没有更强的参考,它们将成为GC的候选者.

重要的是要注意,不仅任何强引用都会在内存中保存一个对象.这些必须是从垃圾收集根链接的引用.GC根是一类特殊的变量,包括:

  • 堆栈上的临时变量(任何线程)
  • 静态变量(来自任何类)
  • 来自JNI本机代码的特殊参考

请参阅此文档(§A.3.4无法访问,§A.4.2使用WeakReference的GC示例)