-
Java基礎學習總結
- 每部分內容會重點寫一些常見知識點,方便復習和記憶,但是并不是全部內容,詳細的內容請參見具體的文章地址。
面向對象三大特性
- 繼承:一般類只能單繼承,內部類實現多繼承,接口可以多繼承
- 封裝:訪問權限控制public>protected>包>private內部類也是一種封裝
- 多態:編譯時多態,體現在向上轉型和向下轉型,通過引用類型判斷調用哪個方法(靜態分派)。
- 運行時多態,體現在同名函數通過不同參數實現多種方法(動態分派)。
基本數據類型
- 基本類型位數,自動裝箱,常量池
- 例如byte類型是1byte也就是8位,可以表示的數字是-128到127,因為還有一個0,加起來一共是256,也就是2的八次方。
- 32位和64位機器的int是4個字節也就是32位,char是1個字節就是8位,float是4個字節,double是8個字節,long是8個字節。
- 所以它們占有字節數是相同的,這樣的話兩個版本才可以更好地兼容。(應該)
- 基本數據類型的包裝類只在數字范圍-128到127中用到常量池,會自動拆箱裝箱,其余數字范圍的包裝類則會新建實例
String及包裝類
final關鍵字
-
final修飾基本數據類型保證不可變
- final修飾引用保證引用不能指向別的對象,否則會報錯。
- final修飾類,類的實例分配空間后地址不可變,子類不能重寫所有父類方法。因此在cglib動態代理中,不能為一個類的final修飾的函數做代理,因為cglib要將被代理的類設置為父類,然后再生成字節碼。
- final修飾方法,子類不能重寫該方法。
抽象類和接口
- 抽象類可以有方法實現。
- 抽象類可以有非final成員變量。
- 抽象方法要用abstract修飾。
- 抽象類可以有構造方法,但是只能由子類進行實例化。
- 接口可以用extends加多個接口實現多繼承。
- 接口只能有public final類型的成員變量。
- 接口只能有抽象方法,不能有方法體、
- 接口不能實例化,但是可以作為引用類型。
代碼塊和加載順序
-
假設該類是第一次進行實例化。那么有如下加載順序
- 靜態總是比非靜態優先,從早到晚的順序是:
- 靜態代碼塊和靜態成員變量的順序根據代碼位置前后來決定。
- 代碼塊和成員變量的順序也根據代碼位置來決定
- 最后才調用構造方法構造方法
多線程
以上就是動力節點小編介紹的"Java技術學習核心總結",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。