《Head First Java》以視覺化、腦科學驅動的學習方式著稱。本文提煉其核心知識點:對象在堆中創建、變量分類、引用本質、參數傳遞機制、默認值規則、比較操作符區別,構建 Java 基礎知識骨架。
| 類別 | 包含類型 | 存儲內容 | 默認值 |
|---|---|---|---|
| 基本類型 (8種) | boolean, byte, short, char, int, long, float, double | 直接存儲值 | 有(0/false/0.0/\u0000) |
| 引用類型 | 類、介面、數組、枚舉、註解 | 存儲對象的引用(地址指針) | null |
32.5f 必須加 f 後綴,否則視為 double 編譯報錯(可能精度損失)。_、$ 開頭,後續可含數字。myVar ≠ myvar。class, int, for...)與保留字(goto, const)。Dog d1 = new Dog();
Dog d2 = d1; // d1、d2 指向同一 Dog 對象
d1.name = "Max";
System.out.println(d2.name); // 輸出 "Max"
final Dog d = new Dog();
d = new Dog(); // 編譯錯誤
d.name = "Buddy"; // 合法
int[] nums = new int[7]; // 7 個 int 默認值 0
Dog[] pets = new Dog[7]; // 7 個 Dog 引用,默認 null,無 Dog 實例
Java 只有值傳遞(拷貝傳遞),無引用傳遞。
void swap(Dog a, Dog b) {
Dog temp = a;
a = b; // 只換了局部引用
b = temp; // 實參無影響
}
| 變量類型 | 位置 | 默認值 | 備註 |
|---|---|---|---|
| 實例變量 (字段) | 堆中對象內部 | 有(0/false/null/0.0) | 構造器執行前由 JVM 隱式初始化 |
| 局部變量 | 棧幀中 | 無 | 必須顯式初始化後才能使用,否則編譯錯誤 |
| 場景 | 操作符/方法 | 語義 |
|---|---|---|
| 基本類型值比較 | == | 值相等 |
| 引用指向同一對象 | == | 地址相等 |
| 對象內容/業務語義相等 | .equals() | 需類覆寫 equals 定義業務相等邏輯 |
掌握這些基石概念,是通往 Java 進階之路的「護城河」。《Head First Java》通過圖像、謎題、對話式敘事降低認知門檻,建議配合大量敲代碼練習,將知識內化為肌肉記憶。