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

看板java作者 (!H45)時間17年前 (2007/03/13 12:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/9 (看更多)
※ 引述《LPH66 (ha(ruhi|yate)ism)》之銘言: : ※ 引述《Franckie (as simple as possible)》之銘言: : : 第五行所產生的Object只被 o 所 reference : : 第七行把 o reference 到另外一個Object : : 如此一來第五行所產生的Object就沒有被reference到 : : 所以就可以被GC了 : 我的想法是和原PO一樣 : 如果真的在第七行就能被GC的話 : 那下面這段程式 (我多加兩行) : public class GC : { : private Object o; ^^^^^^^^^^^^^^^^^ 設這個Object叫作x : private void dosomethingElse(Object obj){o = obj ; } : public void dosomething() { : Object o = new Object() ;//第5行 : dosomethingElse(o) ;//第6行 : o = new Object() ;//第7行 ^^^^^^^^^^^^^^^^^^ 設這個Object叫作y : doanotherthing(); : dosomethingElse(null) ;//第8行 : o = null ;//第9行 : }//第10行 : private doanotherthing(){System.out.println(o);} //這裡 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 這邊會印出x : } : 我標「這裡」的地方到底會印出什麼? 是第五行的物件還是null? : 如果是第五行的物件的話 : 那假如剛好在跑到這之前這物件就已經被GC掉了 那會發生什麼事? 所以第七行之後y被GC掉是沒問題的 -- 打太快,修一下... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.205.85 ※ 編輯: H45 來自: 140.115.205.85 (03/13 12:10)
文章代碼(AID): #15zYFZm4 (java)
討論串 (同標題文章)
文章代碼(AID): #15zYFZm4 (java)