Re: [問題] 請教一道GC題目
這是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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 9 篇):