本文是《 JAVA 編程思想》第四章的讀書筆記
一、 用構(gòu)造函數(shù)初始化
1.1、?? 函數(shù)的簽名和返回值
構(gòu)造函數(shù)可以通過不同的函數(shù)簽名來進(jìn)行重載。構(gòu)造函數(shù)沒有返回值,這和返回值為 void 的是不同的
1.2、?? 構(gòu)造函數(shù)的重載
如何區(qū)分構(gòu)造函數(shù)的不同呢,用不同的函數(shù)簽名。函數(shù)簽名的順序不同都可以,但是這樣的編程風(fēng)格是不好的。
函數(shù)的簽名會(huì)上升轉(zhuǎn)型(當(dāng)沒有合適的函數(shù)簽名出現(xiàn)的時(shí)候),但是不會(huì)窄化轉(zhuǎn)型,你必須要顯示的進(jìn)行強(qiáng)制類型轉(zhuǎn)換。
不能以 return value 的不同作為重載的標(biāo)準(zhǔn)。
當(dāng)程序提供了構(gòu)造函數(shù)以后,系統(tǒng)就不在提供默認(rèn)的構(gòu)造函數(shù)了。
This 關(guān)鍵字指的是當(dāng)前對(duì)象,有了 this 后,可以在構(gòu)造函數(shù)中以如下的方式調(diào)用
















1.3、?? Static 的含義
你無法在 static 函數(shù)中調(diào)用 non-static 函數(shù),但是你可以在 non-static 中調(diào)用 static 函數(shù)。
二、 類的清理
JAVA 的垃圾回收機(jī)制只能回收 new 出來的對(duì)象,但是你的對(duì)象不是 new 出來的而獲得的“特殊”內(nèi)存,那么 JAVA 的垃圾回收就不能處理,這樣就必須用 finalize() 函數(shù)來釋放你的“特殊”內(nèi)存。
JAVA 的清理方式是先調(diào)用你的 finalize() ,然后在下次垃圾回收的時(shí)候來清理你的“特殊”內(nèi)存。
關(guān)鍵的三句話:
垃圾回收不等于析構(gòu);
你的對(duì)象可能不被回收;
垃圾回收動(dòng)作只回收內(nèi)存。
用 System.gc() 可以用來強(qiáng)迫終結(jié)動(dòng)作的發(fā)生