Java中,在引用链等一些复杂情况下,如何判断引用可达性?
假设在下面的示例中,str
是软件引用的引用sr
,并且sr
是弱引用的引用wr
。
String str = "abc";
SoftReference<Object> sr = new SoftReference<>(str);
WeakReference<Object> wr = new WeakReference<>(sr);
str = null;
sr = null;
那么在这种情况下,什么是可达性str
?根据Java doc:An object is softly reachable if it is not strongly reachable but can be reached by traversing a soft reference.
在这种情况下,str
可以通过遍历wr
andsr
来访问,这意味着遍历会通过软引用。我可以说str
是轻而易举的吗?但是在本文档中的参考对象链部分之后,似乎很难达到。str