我有一個關於弱引用碰到過這樣的例子,從維基百科:的WeakReference到字符串,字符串常量
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());
}
}
我沒有在這種情況下明白爲什麼只有r.get()返回null而不是SR。得到()。有人能讓我知道原因嗎?
非常感謝。