有人可以解释三个参考类之间的区别(或发布一个很好的解释的链接)吗?SoftReference
> WeakReference
> PhantomReference
,但我什么时候会使用每一个?为什么有一个WeakHashMap
但没有SoftHashMap
或PhantomHashMap
?
如果我使用以下代码...
WeakReference<String> ref = new WeakReference<String>("Hello!");
if (ref != null) { // ref can get collected at any time...
System.gc(); // Let's assume ref gets collected here.
System.out.println(ref.get()); // Now what?!
}
...怎么了?我是否必须ref
在每条语句之前检查是否为空(这是错误的,但我该怎么办)?很抱歉这些快速的问题,但我无法理解这些Reference
课程......谢谢!