Re: [問題] 物件銷毀

看板java作者 (123)時間13年前 (2012/11/09 18:19), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/6 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : ※ 引述《lkjh0877 (123)》之銘言: : : 小弟在寫程式的時候遇到了一個問題 : : 找了幾天了還是找不到解答 : : 所以上來請教一下各位大大 : : 假設我今天寫了一個自定類別A : : A a1 = new A(); : : A a2 = new A(); : : List<A> list = new Array<A>(); : : list.add(a1); : : list.add(a2); : : list.clear(); : : 在整段程式做完之後 : : list內值雖然都已經是null了 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ : 請問你怎麼知道 list 內值(假設是「內的值」的縮小)是 null : : 但為什麼a1和a2卻不是null? : 農夫種出兩顆西瓜,分別叫西瓜甲跟西瓜乙 : 然後他找了一個籃子,把西瓜甲跟西瓜乙放進去 : 接著他又把籃子清空(至於西瓜是用倒的還是搬的不重要) : 請問一下,西瓜甲跟西瓜乙會因為離開籃子 : 而就變得不是西瓜嗎? : [卡司表] : 籃子 = List : 西瓜 = A : 西瓜甲 = a1 : 西瓜乙 = a2 先為打錯字道歉... 我是用degugger觀察list裡面的內容的 而且我上網找arraylist的source code裡面的clear method是長這樣: modCount++; // Let gc do its work for (int i = 0; i < size; i++) elementData[i] = null; size = 0; 因此我當初認為西瓜是會直接被銷毀的 顯然我必須要再去看一下add的方法 那假如我今天要將已放進西瓜籃的西瓜銷毀 可以透過從西瓜籃裡拿出來的?還是只能從原本的a1、a2? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.133.76.30

11/09 18:27, , 1F
只要還有東西指向你的西瓜 西瓜就不會被銷毀
11/09 18:27, 1F

11/09 18:36, , 2F
了解!感恩
11/09 18:36, 2F
文章代碼(AID): #1GdDYsv8 (java)
討論串 (同標題文章)
文章代碼(AID): #1GdDYsv8 (java)