java編程思想筆記

1.當一個基本數據類型作爲類的成員變量時, 如果沒有賦予初始化值,java會給它一個默認值  boolean false   char '\uoooo'(null)    byte (byte)0    short (short)0     int 0    long 0L     float 0.0f      double 0.0d

2.String類支持+=操作

3.構造器中只能用this(args...)調用一次其他構造器

4.static方法內部不能調用非static方法(如果將一個對象引用傳入static方法,可以通過引用調用非靜態方法,和非靜態成員),非static方法內可以調用非靜態方法;

5.垃圾回收只與內存有關(使用垃圾回收器的唯一原因是爲了回收程序不再使用的內存)

6.finalize()方法的使用場景是再特殊情況下創建了特殊對象的時候釋放內存空間(特殊情況是指通過非Java的手段創建的對象,例如Java中調用本地方法,本地方法可能是支持c和c++,也可能是其他語言來分配存儲空間,除非調用free()函數,否者存儲空間得不到釋放,從而造成內存泄漏,。而free()是c和c++中的函數,所以需要finalize()中的本地方法調用它。)

所以不要輕易調用finalize()函數。

7.無論是垃圾回收還是終結都不保證一定發生。

8.finalize()可用於驗證對象是否處於可回收狀態;

9.引用計數垃圾回收技術(簡單 速度慢) 每個對象含有一個引用計數器,當有引用連接至對象是,引用計數加1.當引用離開作用域或被置爲Null時,引用計數減1,。垃圾回收器再含有全部對象的列表上便利,當計數只變爲0時立即釋放對象。(缺陷時當對象之間存在循環引用可能會出現“對象應該被回收,但引用計數不爲零的情況”)該技術並未被應到Java虛擬機實現

10.enum可以再switch語句內使用

11.public權限任意類都可以訪問到,默認權限(不寫修飾符)爲包保護權限只有被同一個包下的類訪問,protected權限可以被繼承類訪問到也可以被同一包內的任何類訪問。

12.private權限可用於特定的構造器,阻止別人直接訪問某個特定的構造器

13.訪問權限的控制常被稱爲是具體實現的隱藏。把數據和方法包裝進類中,以及具體實現的隱藏,常共同被稱作是封裝

14.繼承可以視爲對類的複用,類的複用有繼承和組合兩種方式(還有代理)

15.@Override註解可以防止你在不想重載時意外地進行了重載

16.final使用的三種情況:數據、方法和類。在方法參數列表中將參數聲明爲final意味着在方法中無法修改參數引用所指向的對象;

17.使用final方法的原因:1.將方法鎖定,防止任何繼承類修改即被覆蓋重寫;2.效率,(當然現在已經不推薦使用fianl來提高效率,因爲如果方法很大那麼你的程序代碼會膨脹,因而看不到內嵌帶來的任何性能提高,因爲所帶來的性能提高可能會因爲花費與方法內的時間量而被縮減)。最近的java版本中虛擬機對這一情況進行了優化去掉了這些效率反而降低的內嵌調用,fianl關鍵字主要適用於1情況);

18.類中所有的private方法都隱式地指定爲final的。

19.由於final類禁止繼承,所以final類中的所有方法都隱式指定爲final的。

20.多態的作用是消除類型之間的耦合關係,多態是通過後期綁定(也叫做動態綁定或運行時綁定)知道是調用哪一個對象的方法的。

21.發生向上轉型時,任何成員變量訪問操作都將由編譯器解析,因此不是多態的。

22.發生向上轉型時,靜態方法不具有多態性,靜態方法與類而並非與單個的對象相關聯的。

23.構造器不具有多態性,屬於隱式static方法,如果要銷燬對象,銷燬順序應該和初始化順序相反

24.構造器內部的具有多態行爲,所以基類構造器編寫準則之一:用儘可能簡單的方法使對象進入正常狀態,如果可以的話,避免調用其他方法。構造器中唯一能夠安全調用的方法是基類中的final方法(也適用於private方法)

25.在其他任何事物發生之前,將分配給對象的存儲空間初始化成二進制的零或者其他對應的初始值

26.java5中添加了協變返回類型,它表示在到處類中的被覆蓋方法可以返回基類方法的返回值類型的某種導出類型

27.用繼承表達行爲間的差異,並用字段表達狀態上的變化。

28.一個抽象類可以沒有抽象方法,意義在於可以阻止產生這個類的任何對象

29.當實現某個接口是,並不需要實現嵌套在其內部的任何接口,而且,private接口不能在定義它的類之外被實現。

30.當生成一個內部類的對象是,此對象與製造它的外圍對象之間就有了一種聯繫,所以他能訪問其外圍對象的所有成員方法,而不需要任何特殊條件,此外還擁有其外圍類的所有元素的訪問權。

31.可以在一個方法裏面或者是在任意的作用域內定義內部類

32.設計模式總是將變化的事物與保持不變的事物分離開

33.任何實現iterable的類,都可以將它用於foreach語句中;Iterable接口被foreach用來在序列中移動;foreach語句可以用於數組或iterable類,但數組中並不包含iterable

34.未完待續剛看到281頁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章