2010 年 Oracle 完成收購 Sun Microsystems,Java 所有權易手。當時社群普遍擔憂:Oracle 以商業軟體著稱,是否會封閉 Java、收費授權、邊緣化社群版本?十多年過去,實證顯示:Oracle 大幅增加 Java 投入 (工程師人數、釋出頻率、效能優化),但也確實改變了授權與釋出節奏。
| 年份 | 事件 | 影響 |
|---|---|---|
| 2011 | JDK 7 釋出 (延遲 5 年) | 模組化 (Jigsaw) 延至 JDK 9,引入 invokedynamic、try-with-resources、Diamond 語法 |
| 2014 | JDK 8 釋出 | **里程碑**:Lambda、Stream、Optional、新日期時間 API、Nashorn JS 引擎,長期支援 (LTS) 版本 |
| 2017 | JDK 9 釋出 | 模組系統 (JPMS)、JShell、HTTP/2 Client、多釋出 JAR;**釋出週期改為 6 個月** |
| 2018 | JDK 11 (LTS) 釋出;Oracle JDK 商業授權變更 | 免費僅限開發/測試,生產需付費訂閱;OpenJDK 成為免費生產首選 |
| 2021 | JDK 17 (LTS) 釋出 | 封裝內部 API 強制化、密封類、記錄型別、模式匹配雛形;Oracle 推出 No-Fee Terms (NFTC) 緩和授權 |
| 2022 | JDK 19/20/21 (LTS) 釋出 | 虛擬執行緒 (Project Loom)、結構化並發、向量 API、模式匹配完善、Record Patterns |
| 2024 | JDK 22/23 釋出 | 隱含類、結構化並發 API 穩定、外部函數/記憶體 API (JEP 454) 穩定、Stream Gatherers |
建議:生產環境優先選擇長期維護的 OpenJDK 發行版 (Eclipse Temurin, Microsoft Build of OpenJDK, Amazon Corretto, Azul Zulu, Red Hat build),鎖定版本並規劃升級路徑。
Java 近年通過 OpenJDK 專案 推動核心創新:
| 競爭者 | 優勢 | Java 應對 |
|---|---|---|
| Go | 原生協程、部署單一二進制、啟動快 | 虛擬執行緒 (Loom)、GraalVM Native Image、AOT 編譯、CDS (Class Data Sharing) |
| Rust | 記憶體安全無 GC、零成本抽象 | Panama FFI 安全互操作、Valhalla 值類型縮小差距、GC 技術持續進化 (ZGC, Shenandoah 亞毫秒停頓) |
| Kotlin | 現代語法、空安全、協程、100% Java 互操作 | Java 語法持續跟進 (Record, Pattern Matching);Kotlin 編譯為相同位元碼,生態共榮而非零和 |
| Node.js/Python | 開發效率高、生態豐富 | GraalVM Polyglot 混合運行、Java 21+ 單檔案運行 java Main.java、JShell REPL |
Java 擁有:
未來 10 年,Java 將在高吞吐後端服務、大數據平台 (Flink/Spark)、金融核心系統、Android 開發 (雖 Kotlin 為主)、嵌入式/邊緣 (Java ME/Embedded) 繼續佔據主導地位。開發者應擁抱 LTS 版本升級節奏、虛擬執行緒程式模型、GraalVM 原生編譯、模組化架構,讓 Java 應用在雲原生時代同樣具備輕量、快啟動、高密度部署能力。