Re: [問題] 物件銷毀

看板java作者 (痞子軍團團長)時間11年前 (2012/11/09 18:57), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串4/6 (看更多)
※ 引述《lkjh0877 (123)》之銘言: : 我是用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? 這裡問題有點多,雖然都是小問題,不過混在一起就變大問題了 首先就是,這一切跟西瓜籃有什麼關係? //要執行也不是不行的 sudo code 西瓜 甲 = 西瓜田.收割(); 西瓜 乙 = 西瓜田.收割(); 西瓜籃[1] = 甲; 西瓜籃[2] = 乙; 西瓜籃[1] = 空的; 西瓜籃[2] = 空的; 你會說西瓜就這樣被銷毀了嗎? 拜託,西瓜又還沒被吃掉 or 壞掉 只不過西瓜籃空掉而已...... 好,接下來是「什麼叫銷毀」 (糟糕,突然想接「接上他的腿」 Orz) 基本上,用擬人化的講法 所有的變數(西瓜),都要有個 reference(名字 or 籃子裡頭的位址) 西瓜 甲 = 西瓜田.收割(); 甲 = 空的; 那剛剛收割起來的那個西瓜就沒有名字了 因為沒啥鳥用、或著說你沒辦法明白指出是那個實體(instance) 所以會被回收掉(GC) 西瓜 甲 = 西瓜田.收割(); 西瓜籃[1] = 甲; //在這個摸們特,其實「甲」跟「西瓜籃[1]」都同時代表某個西瓜實體 甲 = 空的; //在這裡還無所謂,因為可以用「西瓜籃[1]」來代表那顆西瓜 西瓜籃[1] = 空的; //這時候就沒任何方法可以代表那個西瓜實體了,所以在 JVM 中會被銷毀 ==== 接上他的腿! -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.202.140

11/09 19:38, , 1F
什麼叫驚喜?
11/09 19:38, 1F

11/12 11:36, , 2F
接上她的腿是甚麼梗xDD
11/12 11:36, 2F
文章代碼(AID): #1GdE6fYH (java)
討論串 (同標題文章)
文章代碼(AID): #1GdE6fYH (java)