| 變數名 | 變數值範例 | 說明 |
| JAVA_HOME | C:\Java\jdk-17 | Maven/Gradle/IDE 參考基準 |
| PATH | %JAVA_HOME%\bin | 讓 java/javac 指令全域可用 |
| CLASSPATH | .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar | 舊版相容;現代專案建議留空或只保留 . |
✅ 驗證:開新 CMD 執行 java -version、javac -version。
3. 常見錯誤與解決
NoClassDefFoundError:CLASSPATH 缺少 .(當前目錄)或套件路徑錯誤。
class file has wrong version:JVM 版本低於編譯目標版本(如用 JDK 17 編譯、JRE 11 執行)。
- 中文亂碼:編譯加
javac -encoding UTF-8,執行加 -Dfile.encoding=UTF-8。
第一支 HelloWorld
// 檔名 HelloWorld.java (類別名必須同檔名)
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
編譯執行:
javac HelloWorld.java
java HelloWorld
Java 程式基本骨架
public class ClassName {
// 靜態常數
// 實例欄位
// 建構子
// 實例方法
// 靜態方法
public static void main(String[] args) {
// 程式進入點
}
}
核心觀念釐清
- 變數 vs 物件:
String s = "abc"; s 是參考變數,"abc" 是字串物件(常數池)。
- static:屬於類別而非實例,
ClassName.staticMethod() 直接呼叫,共享單一記憶體。
- 陣列宣告:
int[] arr = new int[5]; 或 int arr[] = new int[5];(前者慣用)。
- 非靜態不能在靜態直接用:
main 是 static,需 new ClassName() 建立實例才能呼叫非靜態成員。
學習建議
- 先熟悉 CLI 編譯執行流程,再轉用 IDE(IntelliJ IDEA / Eclipse / VS Code)。
- 多動手寫、改、錯、除錯,比單看書有效百倍。
- 善用
jshell (Java 9+) 互動式驗證語法片段。
- 上一篇文章: No
- 下一篇文章: 為什麼 Java 中實作繼承(extends)多數有害?介面導向設計深度解析
Copyright ©
程式碼之家 All Rights Reserved