時間軸:Java 關鍵里程碑
| 階段 | 時間 | 關鍵事件 |
| 前傳 | 1991-1994 | Green Project、Oak 誕生、機頂盒失利、Web 爆發促使轉型 |
| 幼年期 | 1995-1998 | JDK 1.0/1.1、JIT 編譯器、Applet 紅極一時、J2EE/J2SE/J2ME 三大版本劃分 |
| 青少年期 | 1998-2004 | JDK 1.2 (Java 2)、Swing、Collections、JDK 1.3 HotSpot、JDK 1.4 性能躍升、Tomcat/WebLogic 普及 |
| 壯年期 | 2004-至今 | J2SE 5.0 (Tiger):泛型、註解、自動拆裝箱、增強 for、EJB 3.0、JSF;J2SE 6.0 (Mustang) 推出 |
版本代號趣聞:動物命名法
- 主版本:鳥類/哺乳類(Merlin 灰背隼、Tiger 老虎、Mustang 野馬)
- 維護版本:昆蟲(Ladybird 瓢蟲、Mantis 螳螂、Grasshopper 蚱蜢)
- 早期小版本:寶石、南瓜、人名、地名
各階段核心突破深度剖析
JDK 1.0-1.1:地基與 JIT
- AWT 奠定 GUI 基礎,但組件簡陋、平台差異大
- JDK 1.1 引入 JIT(Just-In-Time)編譯器:熱點代碼緩存機器碼,效能大幅提升
JDK 1.2 (Java 2):革命性重構
- 三大版本劃分:J2EE(企業)、J2SE(桌面/服務端)、J2ME(移動/嵌入式)
- API 分層:核心/可選/專用 API
- Swing 亮相:輕量級組件、可換裝外觀、建立在 AWT 之上
- Collections 框架:統一容器體系,取代 Vector/Hashtable
- 多線程、異步 I/O 增強
JDK 1.3:HotSpot 成為預設 VM
- HotSpot VM 取代 Classic VM:自適應編譯、逃逸分析、內聯優化
- JNDI 增強 DNS 支持、JNI 成熟、XML 納入標準庫
- Tomcat 3.x 穩定版普及,WebLogic 等商業 AS 起飛
JDK 1.4:性能與成熟並重
- HotSpot 鎖機制優化、NIO、正則表達式、日誌 API、鏈式異常
- Compaq、Fujitsu、IBM 等廠商聯合開發,發展最快版本
- 此後 Java 足以支撐大多數企業級應用
J2SE 5.0 (1.5, Tiger):易用性大躍進
- 語法糖:泛型、增強 for、可變參數、註解、自動拆裝箱、枚舉、靜態導入
- EJB 3.0 利用註解簡化開發、JSF 簡化 Web UI
- 版本號 1.5 → 5.0 象徵質變
J2SE 6.0 (Mustang, 2006 Beta → 2007 GA)
- 腳本引擎 (JSR 223)、Swing/AWT 更新、JAX-WS 2.0、JDBC 4.0
- 專為 Vista 優化、編譯器 API (JSR 199)、可插拔註解處理器
- JDK 7 專案同步啟動(後來演變為 OpenJDK)
Java 開源轉折點
- 2006 JavaOne:Sun 宣佈開放 Java 核心源碼
- 目的:降低參與門檻、擴大社群、鞏固兼容性、催生千億美元產業生態
- 2007 年 GPLv2 釋出 OpenJDK,Java 正式邁入開源時代
Gosling 預言:未來十年三大挑戰
- 複雜性管理:API、語言、工具、UI 國際化、大小尺寸調整
- 併發模型革新:海量線程、多核時代的並行編程
- 普惠計算:3/4 人類未聯網,瘦客戶端、傳感器、Java 驅動微裝置彌合數位鴻溝
總結與展望
十年磨一劍,Java 從 Oak 到 JDK 6,從 Applet 到雲原生基石。開源、標準化、社群共治讓 Java 穿越周期。展望未來:模塊化(Jigsaw/JPMS)、GraalVM 原生映像、虛擬線程、模式匹配、記錄類型 正重塑 Java 面貌。正如 Gosling 所言:「Java 提高了計算的流動性,如同貨幣提高商品流動性。」 這場旅程遠未結束。