看板 java 關於我們 聯絡資訊
剛在書上看到循環參考部分 書上說java如果把物件參考設成null就會被殘存記憶體程序收集掉 書上提供一個技巧說可以避開循環參考 不過我真是有看沒有懂 有人可以解釋一下? 原本程式碼: class a { b b1; a() { b1 = new b(); } } class b { a a1; b() { a1 = new a(); } } public class app { public static void main(String[] arg) { a obj = new a(); obj = null; //循環參考在此 } } 技巧程式碼: class Data { public int intdata = 0; SuperGiantSizeClass sgsc; Data() { intdata = 1; sgsc = new SuperGiantSizeClass(100000000); } protected void finalize() { sgsc = null; } } public class app { public static void main(String[] arg) { Data d = new Data(); d = null; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.122.138.175 ※ 編輯: s35300792001 來自: 122.122.138.175 (02/02 22:04)
PsMonkey:==.==== 你又沒講書上的技巧是啥? 02/02 23:10
stukk:應該是想強調finalize的使用方法吧,書上應該都有說才是.. 02/03 08:16
s35300792001:回一樓...書上的技巧就是我打上的code... 02/04 03:11
qrtt1:作者不可能只給 code 不解釋技巧在那吧? 如果是, 那很糟. 02/04 09:38
※ 編輯: s35300792001 來自: 122.122.138.175 (02/04 22:31)
s35300792001:我把他原本的說的循環參考的例子寫上去了 02/04 22:32
PsMonkey:什麼鬼啊.... 到底是哪本書、它到底怎麼寫的? 02/05 00:09
s35300792001:書名java 2 Black Book徹底研究 02/07 12:37