看板 java 關於我們 聯絡資訊
※ 引述《johjimakenji (喬治馬健司)》之銘言: : 如果想要刪除一個object 就是令它指向null : 但如果該物件裡包含class varible : 例如 public static int sum = 0; : 每new一次這個object就會sum++ 用來計算總共有幾個object : 但如果把object指向null sum的值並不會改變 : 請問有什麼辦法解決? : 就是想要刪除這個object並讓sum的值正確 寫個 finalize method 吧, 這樣當 GC 去回收此物件時,就會執行到 finalize 了。 不過要注意一點, 並不是將 reference 設成 null,GC 就會立刻回收該物件。 所以如果你希望將 reference 設成 null 時,sum 能立刻反應, 還是自己寫 --sum 吧。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.183.171
SansWord:自己寫--sum就不能寫finalize喔~這兩者是互斥的 11/13 10:52
legnaleurc:應該說為什麼對 instance 的操作要動到 static ? 11/13 11:50
legnaleurc:這樣的話可能要寫個函式專門去清這些東西 11/13 11:52
tkcn:自己寫 --sum 我就不會再 finalize() 裡頭再寫一次 --sum 呀 11/13 12:41
cjcat2266:最好自己寫一個destroy(),丟掉物件以前自己呼叫一次 11/13 13:24