當我閱讀維基百科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 =我在這裏,靜態= I GC後我在這裏 : R = NULL,靜態=我在這裏
我無法理解GC後的輸出,哪裏是強引用字符串由SR(WeakReference的)所指的字符串中的字符串池
@ManishDoshi如果你不能有效評論這個問題,你應該諮詢Javadoc,並可能問你自己的問題。 – EJP
完全相同的問題:http://stackoverflow.com/questions/14494875/weakreference-string-didnt-garbage-collected-how –
@ManishDoni你似乎不瞭解StackOverflow網站。作者是提問的人。其他人應該回答問題或提供有用或相關的意見,或者提出可能闡明問題並導致答案的問題。你的既不是。這實際上是另一個問題,可以用我指出的方式來回答。問一個可能自己不明白的人的問題也是不合邏輯的,這可能是他爲什麼要問他的問題。 – EJP