在擴展Thread
類,請看下面的例子:在Thread.run()中創建新對象,它們何時被垃圾收集?
public void run() {
while (workToDo) {
JSONObject json = new JSONObject(getNextMap());
publishJSON(json.toString());
// thread sleep
}
}
是json
每個實例仍然被引用,只要線程運行時,或者他們每次new
被稱爲釋放?這應該轉移到一種方法,即publishJSON(getJson(getNextMap())
?
每次循環迭代後,它將在GC超出範圍時可用。 –
當GC認爲他們應該是時,他們就被釋放了。請注意,當到達'while'循環的最後一句時,'json'變量的對象引用保留將被標記爲垃圾回收。 –
@assylias你可以擴大嗎? –