【发布时间】:2013-07-03 08:57:05
【问题描述】:
当我在 wikipedia http://en.wikipedia.org/wiki/Weak_reference 上阅读以下示例代码时
import java.lang.ref.WeakReference;
public class ReferenceTest {
public static void main(String[] args) throws InterruptedException {
WeakReference r = new WeakReference(new String("I'm here"));
WeakReference sr = new WeakReference("I'm here");
System.out.println("before gc: r=" + r.get() + ", static=" + sr.get());
System.gc();
Thread.sleep(100);
// only r.get() becomes null
System.out.println("after gc: r=" + r.get() + ", static=" + sr.get());
}
}
输出 在 gc 之前:r=我在这里,静态=我在这里 gc 后:r=null, static=我在这里
gc 后的输出看不懂,sr(WeakReference) 对字符串池中字符串的强引用在哪里
【问题讨论】:
-
@ManishDoshi 如果您无法对这个问题发表有用的评论,您应该咨询 Javadoc 并可能提出您自己的问题。
-
@ManishDoni 您似乎不了解 StackOverflow 站点。作者是提出问题的人。其他人应该回答问题或提供有用或相关的 cmets,或者提出可能阐明问题并导致答案的问题。你的也不是。这实际上是另一个问题,可以按照我指出的方式回答。向自己可能不理解的人提出问题也是不合逻辑的,这可能就是 he 提出 his 问题的原因。
标签: java string reference garbage-collection