0

在 Java 中,当目标对象 A 仅通过弱引用 B 到达时,A 可以被 GC。如果强引用 C 同时到达弱引用 B 会发生什么?例如,C 指向一个类实例,其中包含一个指向 A 的弱引用 B 的字段。如果 C 是活动的,并且没有其他对 obj A 的弱引用或强引用,A 还能是 GC 吗?

4

1 回答 1

0

是的,因为有一个弱引用作为链接,所以它被认为是弱可达的。关于弱参考的维基百科条目说(部分)

与强引用不同,弱引用是不保护被引用对象不被垃圾收集器收集的引用。仅由弱引用引用的对象——意思是“到达对象的每个引用链都包含至少一个弱引用作为链接”——被认为是弱可达的,并且可以被视为不可达,因此可以随时收集。

于 2015-08-10T03:19:04.910 回答