Java 入門教學:從 0 開始建立並執行你的第一支 Java 程式【Thinking in Java筆記(1-3)】
剛開始學 Java 的時候,可能會對「編譯」、「類別」、「static」、「import」這些詞感到一臉問號,這篇文章就是為了幫助你——從零開始,寫出並執行你的第一支 Java 程式,順便搞懂幾個 Java 的基礎概念
為什麼要管「名稱」?── 了解 Java 的命名與可見性
在大型專案中,常常會有幾百個類別,每個類別又叫 Helper、Utils、Config… 沒人知道誰是誰的時候,命名衝突就會像午餐時間的微波爐一樣爆炸
解法:包(Package)命名 + 網域命名規則
Java 建議用你自己公司的網站域名來當 package 的前綴,像這樣:
package com.example.utility.fib;
這種寫法不只避免衝突,還讓你的專案結構更清楚,看起來也很專業(儘管你只是一個人寫 side project)
怎麼使用別人的工具?── import
關鍵字
假設你想用 ArrayList
,但它住在 Java 的 java.util
套件裡,你就得明確跟 Java 說:「我要用這個。」
import java.util.ArrayList;
懶得一個一個寫?可以這樣偷懶一次打包所有類別:
import java.util.*;
但這種用 * 的方式其實有點醜、也不推薦在大型專案用(編譯速度、閱讀性問題),你可以當作是新手練習的「簡易模式」
static 是什麼?它為什麼不需要物件?
有些東西不應該每個物件各存一份,例如計數器、常數、工具方法。這時候 static 就派上用場了
class StaticTest {
static int i = 47;
}
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();
System.out.println(st1.i); // 47
System.out.println(st2.i); // 47
StaticTest.i++;
System.out.println(st1.i); // 48
System.out.println(st2.i); // 48
上面這個例子說明了:所有物件共用同一份 static 資料。就像一群學生共用一個黑板,誰寫什麼其他人都看得到
還有一種常見的用途是「工具方法」,像這樣:
class Incrementable {
static void increment() {
StaticTest.i++;
}
}
Incrementable.increment(); // 不需要 new 就能叫用
實戰:寫出並執行你的第一支 Java 程式
對新手而言,前面的基礎環境設定常常是一個大坑。我們一步一步來,讓你不再被 javac/java/編譯器/環境設定 這種語言搞得頭昏腦脹
什麼是 JDK?
JDK = Java Development Kit,就是 Java 開發工具套件。你沒有它,也就無法編譯和執行 Java 程式。
包含了:
javac
:Java compiler,負責編譯.java
文件java
:Java runtime launcher,用來執行.class
檔- Java 官方語法、常用程序庫等等
我應該裝 JDK 還是 JRE?
- JDK (Java Development Kit) 是開發者用的,你需要的是這個!
- JRE 是 Java Runtime Environment,只能執行 Java 程式,不能編譯
官方下載網址:https://www.oracle.com/java/technologies/javase-downloads.html 或是用 OpenJDK:https://jdk.java.net/
你需要安裝與設定 PATH
從下載項目安裝 JDK 後,請做一件事:
→ 把 JDK 的 bin
目錄追加到環境變數 PATH
什麼是 PATH?
PATH 是一個環境變數,讓你可以直接在終端機上打 javac
而不是打全路徑,像:
"C:\\Program Files\\Java\\jdk-21\\bin\\javac"
最簡單方式:
- Windows: 採用 控制台 → 系統 → 環境設定
- macOS: 編輯
.bash_profile
或.zshrc
export PATH="$PATH:/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin"
編譯 Java 程式
假設你寫了一個簡單程式:
import java.util.*;
public class HelloDate {
public static void main(String[] args) {
System.out.println("Hello. it's: ");
System.out.println(new Date());
}
}
把他儲存為 Hello.java
編譯
javac Hello.java
你會看到相同名稱的 Hello.class
出現在同一目錄
執行
java Hello
注意:這裡不要加 .class
什麼是 .class
檔?
Java 程式不是直接執行原始碼。你寫的 .java
是一種清楚可讀的原始語言,需要編譯成 JVM (虛擬機) 應用的中間碼,也就是 .class
.class
檔是 bytecode,Java 虛擬機 JVM 會讀這個檔案來執行
成功執行的話你將會看到類似的輸出
Hello. it's:
Wed Apr 30 14:55:02 UTC 2024
結語
如果你成功編譯並執行了這支 Java 程式,那就恭喜你:你已經越過了初學者的第一道大門。從搞懂 JDK 到建立 .java
與 .class
檔案,甚至手動設定 PATH——這些步驟看似繁瑣,實際上是成為 Java 開發者的入場券
未來你會接觸到更多像物件導向、例外處理、集合框架、GUI 與多執行緒的概念,但這一切,都建立在你今天寫下並跑出「Hello. it's: + 時間」這段程式的基礎上
接下來,放心大膽地寫下一支支 Java 程式吧。從小工具開始,從錯誤訊息學習,從每次執行中前進一步。這只是你成為開發者的起點——而你,已經在路上了
Comments ()