Java 語言的誕生充滿戲劇性,它並非經過精心策劃的產物,而是源於一場「美麗的誤會」。本文梳理 Java 從 1990 年 Sun 公司內部項目啟動,至今長期佔據編程語言排行榜首的完整演進軌跡,回顧關鍵節點、版本里程碑與生態演變。
| 時間 | 版本 | 關鍵特性 / 事件 |
|---|---|---|
| 1996.01 | JDK 1.0 | 首個正式版,含 JRE (核心 API、JVM) 與 JDK (javac 等工具) |
| 1997.02 | JDK 1.1 | 引入 JIT 即時編譯器,大幅提升運行效率 |
| 1996 末 | — | Flash 面世,蠶食 Java Applet 網頁動畫市場 |
| 1998.12 | JDK 1.2 (Java 2) | 發布 JSP/Servlet/EJB 規范,劃分 J2EE、J2SE、J2ME 三大體系 |
| 2002.02 | JDK 1.4 | 成熟穩定版,催生 Struts、WebWork、Hibernate、Spring 等開源框架爆發 |
| 2004.10 | JDK 1.5 → Java 5.0 | 更名強調重要性,引入泛型、註解、枚舉、自動拆裝箱、foreach、靜態導入等語法糖 |
| 2006.12 | JDK 6.0 | 性能優化、腳本引擎 (JSR 223)、Web Services 增強 |
| 2009.04 | — | Oracle 以 74 億美元收購 Sun,掌握 Java 版權 |
| 2011.07 | JDK 7 | try-with-resources、菱形語法、NIO.2、Fork/Join 框架、invokedynamic |
| 2014.03 | JDK 8 | 里程碑版本:Lambda 表達式、Stream API、Optional、新日期時間 API、Nashorn JS 引擎、默認方法、元註解 |
| 2017.09 | JDK 9 | 模塊系統 (Jigsaw)、JShell、私有接口方法、HTTP/2 Client |
| 2018.03 | JDK 10 | 局部變量類型推斷 (var)、統一 GC 接口、線程局部變量握手 |
| 2018.09 | JDK 11 (LTS) | 長期支持版,HTTP Client 標準化、Lambda 變量語法、Epsilon GC、飛行記錄器開源 |
| 2021.09 | JDK 17 (LTS) | 封裝類、密封類、模式匹配 (instanceof)、強封裝 JDK 內部 API、macOS/AArch64 支持 |
| 2022.09 | JDK 19 | 虛擬線程 預覽、結構化並發 預覽、Record 模式 預覽 |
| 2023.09 | JDK 21 (LTS) | 虛擬線程 正式、結構化並發 正式、Record 模式 正式、未命名類/實例 main 方法、字符串模板 預覽 |
2005 年 JavaOne 大會上,Sun 官方去除版本號中「2」,統一更名為 Java SE/EE/ME。
從嵌入式失意項目到互聯網時代的弄潮兒,再到企業級開發基石與雲原生主力,Java 憑藉「一次編寫,到處運行」的跨平台願景、強大的向後兼容承諾、龐大成熟的生態系統,歷經 28 年風雨依然穩居 TIOBE、GitHub Octoverse 等榜單前列。對開發者而言,緊跟 LTS 版本、掌握現代框架、理解 JVM 底層機制,正是駕馭這門「長青語言」的關鍵。