2006 年仍有人問「什麼是 Java?」乍聽匪夷所思,但細想:十年來 Java 的定義已悄然重寫。舊印象——Applet、位元碼解釋、效能低落、仰賴 Sun 恩賜——早已過時。新現實——雲原生/微服務/SOA、JIT 熱點編譯、高效能匹敵 C++、獨立於 Oracle 的開源社區(OpenJDK、Eclipse Foundation、Red Hat、Azul 等)——才是當下真相。
基本型別(int、boolean 等)非物件,導致:
Object 的 API。Integer 等)橋接,增加樣板碼。| 時代 | 關鍵字 | 代表技術 |
|---|---|---|
| 1.0~1.4 | Applet、AWT/Swing、J2EE、EJB 2.x | 企業級標準化起步,但複雜度高、部署重 |
| 5.0 (1.5) | Generics、Annotation、Autoboxing、Enum、Varargs | 語言表達力大躍升,啟用現代框架雛形 |
| 8~21+ | Lambda、Stream、Module、Record、Pattern Matching、Virtual Thread、GraalVM Native Image | 函數式風格、雲原生優化、啟動極快、記憶體極省 |
Bruce Tate《Beyond Java》指出:CPU 週期成本持續降低,開發者週期未縮減 → 必然引入更高層抽象(如聲明式基礎設施、AI 輔助編碼、平台工程)犧牲少量效能換取極大生產力提升。Java 正以 Virtual Thread (Project Loom)、GraalVM Native Image、Pattern Matching for switch、Record/Sealed Class 等特性回應這一趨勢。
Java 不再是當年那個「寫一次、到處跑」的 Applet 語言,而是雲原生時代的企業級主力、高效能執行平台、開放生態共同體。理解這段演變,才能在技術選型與架構決策中避開認知陷阱,發揮 Java 真正威力。