前言
本文說明 Java 在當前環境下的定位,以及適合使用的場景。
當前定位
跨平台已經是現代程式語言的基本能力,不再是選擇 Java 的主要理由。不過,Java 平台本身非常成熟且穩定,仍然是開發大型應用程式時的常見選擇。
Java 的函式庫生態系非常完整,但在人工智慧等新興領域,逐漸落後於 Python。如果專案中有 AI 需求,常見的做法是將相關功能以 Python 實作為服務,再由 Java 負責其他系統部分。
接下來,我們會從幾個面向來看 Java 的特性。
跨平台
在 Java 剛問世的年代,像 C++ 這類語言在跨平台時,常常需要針對不同系統進行額外調整,是一個實際存在的工程問題。
Java 採用的做法,是在作業系統之上再建立一層執行環境(JVM),讓程式碼不直接依賴底層系統。這種設計後來成為許多語言與平台的參考模式。
如今 C++ 的跨平台工具鏈已經成熟許多,但 Java 透過 JVM 提供一致執行環境的特性,仍然是它的重要特色之一。
將物件導向融入語法
Java 誕生的時代,物件導向是主流設計思維,因此語法設計上刻意強調這一點。例如:
public class MainProgram
{
public static void main(String[] args) {
/* Implement your code here. */
}
}
從現在的角度來看,這樣的寫法可能顯得有些繁瑣,但這反映的是當時對「一切皆物件」的設計取向。
另外也有一些偏工程導向的規則,例如「公開類別名稱必須與檔名相同」,目的是讓大型專案的結構更清晰。
穩定的平台
Java 長期被企業用於開發後端系統與大型應用程式。經過長時間與大規模的實務驗證,整體平台已經相當成熟。
這並不代表 Java 不會出問題,而是當系統出現錯誤時,通常可以先從應用程式本身著手,而不是懷疑平台是否可靠。
用於資訊教育
作為入門語言,Java 提供完整的語言特性。雖然需要適應較強的物件導向風格,但整體而言沒有明顯障礙。
用來學習資料結構時,Java 內建的工具讓操作變得相對簡單,少了記憶體管理的負擔,但也因此減少了對底層運作的理解機會。
在學習演算法時,Java 是一個可接受的選擇。語法結構清晰,可以讓學習重點放在問題本身,而不是語言細節。
Java 授權議題
Oracle 對 Java 的授權模式進行過調整。目前 Oracle JDK 在某些情況下免費使用,但商業用途通常需要付費訂閱。
實務上,多數專案會使用 OpenJDK。這是開源版本,授權相對單純,可以安心使用。除非有特定需求,一般建議直接採用 OpenJDK。
Java 的發行版本
如果沒有特別需要新功能,通常建議選擇長期支援(LTS)版本。
在本文撰寫時,最新的 LTS 版本為 Java 25。
Java 平台語言
除了 Java 本身,Java 平台上還發展出多種語言,例如:
- Groovy:語法較為簡潔,風格接近 Ruby,並與 Java 保持高度相容
- Scala:結合物件導向與函數式程式設計
- Kotlin:近年相當熱門,常用於 Android 開發
- Clojure:以 Lisp 為基礎的函數式語言
在學習上,通常建議先掌握 Java,再依需求延伸到其他 JVM 語言。