在 Java 程式設計的學習旅程中,掌握基礎語法與記憶體模型是構建高效程式的基石。本文將系統梳理運算符優先級與結合性、Java 關鍵字速查、JVM 記憶體區域劃分、基本輸入輸出、類型轉換、流程控制語句以及數組的核心特性與操作,幫助你建立扎實的知識體系。
運算符決定了運算式的求值順序。記住這句口訣:「點號自反非,算關邏賦移」,即可快速回憶優先級從高到低的順序:
同優先級運算符通常遵循左結合性(從左往右),賦值運算符則為右結合性。
Java 保留關鍵字約 50 個,按功能分類如下:
| 分類 | 關鍵字 |
|---|---|
| 存取控制 | private、protected、public |
| 類別/介面/繼承 | class、interface、extends、implements、abstract、final |
| 基本型別 | boolean、byte、char、short、int、float、double、long、void |
| 流程控制 | if、else、switch、case、default、for、while、do、break、continue、return |
| 例外處理 | try、catch、finally、throw、throws |
| 多執行緒/同步 | synchronized、volatile、strictfp、native |
| 封裝/匯入 | package、import |
| 物件建立/引用 | new、this、super、instanceof |
| 常值 | true、false、null |
| 其他 | static、transient、default、enum、assert、goto*、const* |
* goto 和 const 為保留字,目前未使用。
String s = "Hello"; boolean b = s instanceof Object; // trueJava 虛擬機在執行時將記憶體劃分為四大區域:
| 區域 | 儲存內容 | 特點 |
|---|---|---|
| 堆區 | new 出來的物件、陣列 | 所有執行緒共享,GC 主要作用區,可擴展 |
| 棧區 | 基本型別變數、物件參考(引用地址)、方法幀 | 執行緒私有,生命週期隨執行緒,速度快 |
| 方法區/資料段 | 類別資訊、常數、靜態變數、字串常量池 | 共享,JDK 8 後移至 Metaspace(元空間) |
| 程式計數器/代碼段 | 當前執行的位元碼指令位址 | 執行緒私有,極小 |

Scanner in = new Scanner(System.in);
int x = in.nextInt(); // 讀取整數
String str = in.nextLine(); // 讀取整行(含空白)
in.close(); // 釋放資源
int i = 123;
String s1 = i + ""; // 方式 1:字串串接(簡潔,但會建立 StringBuilder)
String s2 = String.valueOf(i); // 方式 2:靜態方法(推薦,null 安全,效率略高)
差異:i + "" 若 i 為 null 會拋 NPE(基本型別不會),String.valueOf 內部處理了 null 回傳 "null" 字串。
String str = "456";
int num1 = Integer.parseInt(str); // 回傳基本型別 int(推薦)
Integer num2 = Integer.valueOf(str); // 回傳包裝類 Integer(會緩存 -128~127)
差異:parseInt 直接回傳 primitive,避免拆箱/裝箱開銷;valueOf 回傳物件,利用緩存池可減少物件建立。

goto 但不可使用,標籤配合 break/continue 可實現多層跳轉。new 操作符類似 C 的 malloc。// 1. 僅宣告引用,未分配記憶體
float[] fAry;
// 2. 宣告並分配長度,元素為預設值(0/false/null)
char[] chAry = new char[10];
// 3. 宣告、分配、靜態初始化(推薦)
int[] ary1 = new int[]{1, 2, 3, 4, 5};
// 4. 簡寫語法糖(僅限宣告時)
int[] ary2 = {1, 2, 3, 4, 5};
int[] a = {1, 2, 3};
int[] b = a; // b 指向同一個陣列物件
b[0] = 99;
System.out.println(a[0]); // 輸出 99!兩個引用操作同一堆記憶體

結論:陣列變數儲存的是引用,賦值只是複製引用。若需獨立副本,請用 Arrays.copyOf、clone() 或迴圈逐元素複製。
掌握這些基石知識,能讓你在進階學習(集合框架、多執行緒、JVM 調優)時更得心應手。建議動手實驗每個範例,加深記憶體模型與語法行為的直觀理解。