国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Thinking in Java第三版讀書筆記-第四章:初始化與清理

2019-11-18 11:33:38
字體:
來源:轉載
供稿:網友

第四章:
1、PRimitive類型的重載慎用。
   (chap4、P7)

2、返回值不能重載,因為存在雖然方法有返回值,但程序中并不關注返回值的情況,如:
   定義:int f(){}; String f(){};
   調用 f(),此時虛擬機就不知道該調用哪個f了。
   (chap4、P11)

3、類中的普通方法不能調用構造函數,構造函數能相互調用,但只能用this要害字。
   (chap4、P13)

4、一般來說,類中無需使用finalize(),因為虛擬機會自動進行垃圾清理,但有種非凡情況,聲明了一個對象,但并沒有refrence,比如:
   class Aclass(){....};
   ...
   new Aclass();
   因為沒有refrence,那么虛擬機會認為它已經沒有用了,就可以回收了,但此時假如你不希望它回收,那么可以在finalize函數中實現,具體可參考書本的例子。
   (chap4、P16)

5、內部變量在使用之前必須初始化;所謂“使用”是指出現在表達式右邊、方法的參數等,而不是表達式的左邊,例如:
   String s = "i love java";
   int i;
   i = s.length();
   是正確的;而
   int i;
   i++;
   是錯誤的。因為i++相對于i = i + 1
   但是,假如不是內部變量而是類的的成員數據,則不需要初始化,因為編譯器不知道會在哪個方法中被初始化。對于primitive的成員數據,Java會自動賦予初始值,如:
   boolean = false
   char  = (char)0  ----空格
   byte  = 0
   int  = 0
   long  = 0
   float = 0
   double = 0
   對于對象的成員數據,沒有初始化之前等于null,所以,primitive的成員數據沒有初始化之前被使用并不會發生錯誤,但對象數據在運行時就會發生exception。
   有一種非凡情況,如:
   int [] a = new int[4];
   此時,看上去只初始化了數組的大小而沒有初始化數組的成員,但在java中,這也是沒有問題的,java給每個數組成員自動進行了初始化。
   (chap4,P22)

6、類實例化的時候總是先執行成員數據的定義(假如在定義的時候進行初始化的話此時就初始化了),然后再執行構造函數,而不管在代碼順序上成員數據在前還是構造函數在前。
   (chap4,P26)

7、對于static類型的成員變量,static類型的成員變量總是比其他成員變量先初始化,static類型的成員變量只初始化一次,只有被用到的static成員變量才會被初始化。
   此處,“被用到”在我來理解,是從main函數開始檢查的,假如main函數中定義了靜態變量或者被main函數調用的其他類中定義了靜態變量,這些靜態變量就“被用到”了。
   (chap4,P27)

8、primitive類型的數組可以用new來初始化,如int[] a = new int[]{1,2,3,4},也可以直接用形如int[] a = {1,2,3,4}的方式來初始化,但假如不是primitive的變量就只能用new來初始化。
   (chap4,P34)

9、數組初始化的時候,int[] a = {1,2,3,4,}; 4后面有逗號,對不對?答:對,最后的逗號有與沒有都可以。
   (chap4,P35)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博乐市| 汾西县| 象州县| 淅川县| 莱阳市| 明溪县| 英吉沙县| 贺州市| 承德县| 宜川县| 黑山县| 上犹县| 内黄县| 荃湾区| 都安| 孟连| 夏津县| 雷山县| 泉州市| 贺兰县| 邵阳县| 莱芜市| 本溪| 宿州市| 东海县| 北流市| 宜兰县| 台北市| 健康| 任丘市| 灵武市| 彭阳县| 洛浦县| 海原县| 灌阳县| 阿尔山市| 定结县| 北票市| 龙口市| 云霄县| 阳西县|