作者ziyunfts (ziyun)
看板java
標題[問題] garbage collection
時間Fri Jan 16 14:55:39 2009
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
推 supertitler:makeThings()結束後,程式就無法指到test了吧 01/16 15:32
→ supertitler:所以當GC運行時,便會釋放test,test中有個b,所以釋 01/16 15:34
→ supertitler:放test之前,會先釋放b 01/16 15:36
→ ziyunfts:可是這題的答案是只有釋放ab並沒有釋放 01/16 16:06
推 PsMonkey:因為自己參考自己? 01/16 16:33
推 GALINE:要看使用的GC演算法決定吧?且這年頭的GC如不能對付循環參 01/16 16:41
→ GALINE:照,那大概沒人要用了…[指了指IE的javascript引擎] 01/16 16:42
→ ziyunfts:題目就只給這樣 然後請問ab哪個符合gc條件 01/16 22:41
推 GALINE:至少要給GC的演算法跟程式跑到哪裡吧...這題目怪怪的 O_oa 01/16 23:03
→ ziyunfts:都沒有 所以我也想不出來為什麼 01/16 23:36