Java 發展史:從 Oak 到 JDK 21 的三十年演進時間軸
1991 年 Sun 公司 Green 團隊為智能家電開發 Oak 語言,誰能預見它將重塑軟體世界?本文梳理 Java 從誕生至今的關鍵里程碑,見證「一次編寫,到處執行」的傳奇旅程。
胚胎期 (1991-1994)
- 1991.01 Green 團隊成立,目標:嵌入式控制系統
- 1991.02 放棄 C++,新語言命名「Oak」
- 1991.06 James Gosling 完成 Oak 解譯器
- 1992 Green OS、Oak 語言、類庫完成
- 1993.02 獲時代華納機頂盒訂單,重心轉向互動電視
- 1994.06 FirstPerson 解散,LiveOak 計劃啟動
- 1994.07 首個 Java 瀏覽器 WebRunner (後更名 HotJava);Oak 正式更名 Java
標準化爆發期 (1995-2004)
- 1995.03 SunWorld 大會正式發布 Java 1.0 & HotJava
- 1996.01 JDK 1.0 釋出
- 1997.02 J2SE 1.1 (內部類、JDBC、RMI、反射)
- 1998.12 J2SE 1.2 (Collections、JIT、Swing、JFC) → 品牌更名「Java 2」
- 1999.06 三大版本劃分:J2SE / J2EE / J2ME
- 2000.05 J2SE 1.3 (HotSpot VM 正式商用)
- 2002.02 J2SE 1.4 (NIO、Logging、XML、正則、Assert)
- 2004.09 J2SE 5.0 (1.5) — 里程碑版本:泛型、註解、枚舉、自動裝箱、增強 for、varargs、靜態導入
現代演進期 (2006-至今)
- 2006.12 Java SE 6 / Java EE 5 / Java ME;Sun 開源 OpenJDK
- 2009.04 Oracle 收購 Sun
- 2011.07 Java SE 7 (try-with-resources、Diamond、NIO.2、ForkJoin、InvokeDynamic)
- 2014.03 Java SE 8 (LTS) — 革命性版本:Lambda、Stream API、Optional、新日期時間、默認方法、Nashorn
- 2017.09 Java SE 9 (模組化系統 Jigsaw、JShell、HTTP/2 Client)
- 2018.03 Java SE 10 (var 區域變量類型推斷)
- 2018.09 Java SE 11 (LTS) (HTTP Client 標準化、String 新方法、Lambda 參數 var)
- 2019.03 Java SE 12 (Switch 表達式預覽、Shenandoah GC)
- 2019.09 Java SE 13 (Text Blocks 預覽、ZGC 產品化)
- 2020.03 Java SE 14 (Record 預覽、Pattern Matching instanceof)
- 2020.09 Java SE 15 (Sealed Classes 預覽、Text Blocks 正式)
- 2021.03 Java SE 16 (Record 正式、Pattern Matching for instanceof)
- 2021.09 Java SE 17 (LTS) (Sealed Classes、強封裝 JDK 內部 API、macOS/AArch64 支援)
- 2022.03 Java SE 18 (Simple Web Server、UTF-8 預設)
- 2022.09 Java SE 19 (Virtual Threads 預覽、Structured Concurrency 預覽)
- 2023.03 Java SE 20 (Scoped Values 預覽)
- 2023.09 Java SE 21 (LTS) — 里程碑:Virtual Threads 正式、Structured Concurrency、Pattern Matching for switch、Record Patterns、String Templates 預覽
版本節奏與 LTS 策略
自 Java 10 起採用 六個月釋出節奏,每三年一個 LTS (8, 11, 17, 21...) 提供長期支援。企業級生產環境強烈建議鎖定 LTS 版本。