问个弱引用的问题

subchen 2013-11-20
在 Java 中,我们知道,如果发生 Full GC,那么弱引用对象就会被清除。

如果有弱引用 a 和 b, 还有个强引用 a

类似下面的 代码
Object a = new Object();
Object b = new Object();
Reference ref_a = new WeakReference(a);
Reference ref_b = new WeakReference(b);
b = null; // free b

那么对于 ref_b 指向的对象(b)在 Full GC 的时候,会被回收,也就是 ref_b.get() === null

而对于 ref_a 指向的对象(a) 不会被回收

我的问题是,在 Full GC 之后 ref_a.get() ?== null
RednaxelaFX 2013-11-20
强引用a是活着的那ref_a.get()就一定不是null
subchen 2013-11-20
OK,那么我就可以安全的使用 WeakHashMap 实现我的功能了。
Global site tag (gtag.js) - Google Analytics