Re: [問題] 請教一道GC題目

看板java作者 (Willie Liao)時間17年前 (2007/03/13 12:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/9 (看更多)
這是eclipse的debug 跑出來的 第七行(執行完第六行) this=GC(id=10) |_o=Object (id=12) o=Object (id=12) 第八行(也就是執行完第七行) this=GC(id=10) |_o=Object (id=12) o=Object (id=16) 第九行(執行完第八行) this=GC(id=10) |_o=null o=Object (id=16) 我支持原po的看法,在第五行新建的物件(id=12)在第八行執行結束之後就沒有 變數指向它了 ※ 引述《gp20 ()》之銘言: : public class GC { : private Object o ; : private void dosomethingElse(Object obj){o = obj ; } : public void dosomething() { : Object o = new Object() ;//第5行 : dosomethingElse(o) ;//第6行 : o = new Object() ;//第7行 : dosomethingElse(null) ;//第8行 : o = null ;//第9行 : }//第10行 : } : When doSomething method is called, after which line does Object created in : line 5 become available for garbage collection ? : 書中給的答案是,第7行後第五行被created的Object才可以被GC : 但是我覺得是第8行耶 : 因為到第7行的時候產生的Object仍然被GC內的成員o所reference : 應該要到第8行讓它也指向null後,之前產生的Object才能被GC : 不知道板友們的看法是? : 謝謝唷… -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 68.49.28.120
文章代碼(AID): #15zYjUfV (java)
討論串 (同標題文章)
文章代碼(AID): #15zYjUfV (java)