Java 基礎考點往往隱藏在「看似簡單」的代碼行為中。本文精選 10 個高頻核心概念,結合字節碼視角與 JVM 規範,助你構建精準的心智模型,應對面試與疑難排查。
class Parent { static { A } { B } Parent() { C } }
class Child extends Parent { static { D } { E } Child() { F } }
new Child();
// 輸出順序:A → D → B → C → E → F
關鍵點:父類構造器隱式/顯式 super() 必須為子類構造器首行;父類無無參構造器時,子類必須顯式調用帶參 super(...)。
super(...) 編譯報錯。this() 或 super(),不可同時存在。| 同類 | 同包 | 子類(異包) | 非子類(異包) | |
|---|---|---|---|---|
| private | ✓ | ✗ | ✗ | ✗ |
| default | ✓ | ✓ | ✗ | ✗ |
| protected | ✓ | ✓ | ✓ | ✗ |
| public | ✓ | ✓ | ✓ | ✓ |
構造器 private → 外部不可直接 new(單例模式基礎)。
default/static/private 方法。private/final/static。String、Integer 等不可變類)。public static final,必須顯式初始化。public abstract(Java 8 前)。extends),實現類需實現所有抽象方法(含父介面)。final/effectively final 變量。Error:JVM 級嚴重錯誤(OOM、StackOverflow),不可捕獲恢復。Exception:受檢異常(編譯強制處理)+ 非受檢異常(RuntimeException 子類,編譯不強制)。finally 必執行(除 System.exit)。List<String> → List)。<? extends T> 生產者(只讀),<? super T> 消費者(只寫)— PECS 原則。Class<T> 或用反射。掌握這 10 大概念的「為什麼」,比背誦「是什麼」更有價值。