[問題] garbage collection

看板java作者 (ziyun)時間17年前 (2009/01/16 14:55), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串5/5 (看更多)
1.class TestA { 2. TestB b; 3. TestA() { 4. b = new TestB(this); 5. } 6.} 7. 8.class TestB { 9. TestA a; 10. TestB(TestA a) { 11. this.a = a; 12. } 13.} 14. 15.class TestAll { 16. public static void main(String args[]) { 17. new TestAll().makeThings(); 18. } 19. 20. void makeThings() { 21. TestA test = new TestA(); 22. } 23.} 請問a在line11有參考了 為什麼會符合garbage collection 如果是因為line21的text消失 那為什麼b沒有失去參考 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.163.89.165

01/16 15:32, , 1F
makeThings()結束後,程式就無法指到test了吧
01/16 15:32, 1F

01/16 15:34, , 2F
所以當GC運行時,便會釋放test,test中有個b,所以釋
01/16 15:34, 2F

01/16 15:36, , 3F
放test之前,會先釋放b
01/16 15:36, 3F

01/16 16:06, , 4F
可是這題的答案是只有釋放ab並沒有釋放
01/16 16:06, 4F

01/16 16:33, , 5F
因為自己參考自己?
01/16 16:33, 5F

01/16 16:41, , 6F
要看使用的GC演算法決定吧?且這年頭的GC如不能對付循環參
01/16 16:41, 6F

01/16 16:42, , 7F
照,那大概沒人要用了…[指了指IE的javascript引擎]
01/16 16:42, 7F

01/16 22:41, , 8F
題目就只給這樣 然後請問ab哪個符合gc條件
01/16 22:41, 8F

01/16 23:03, , 9F
至少要給GC的演算法跟程式跑到哪裡吧...這題目怪怪的 O_oa
01/16 23:03, 9F

01/16 23:36, , 10F
都沒有 所以我也想不出來為什麼
01/16 23:36, 10F
文章代碼(AID): #19S2zi-Y (java)
文章代碼(AID): #19S2zi-Y (java)