JDK 19 功能集凍結(jié):Java 19 只有七個新特性
從 JDK 19 的概述頁面?來看,JDK 19 處于 Rampdown Phase Two 階段,整個功能集已被凍結(jié),將不再對 JEP 進行改動。
Java 19 只有 7 個新特性:
下面對新特性作簡短的介紹:
記錄模式 (預覽版)
使用 記錄模式 增強 Java 編程語言以解構(gòu)記錄值,可以嵌套記錄模式和類型模式,實現(xiàn)強大的、聲明性的和可組合的數(shù)據(jù)導航和處理形式。
這是一個預覽語言功能。
Linux/RISC-V 移植
將 JDK 移植到 Linux/RISC-V,目前僅支持 RISC-V 的 RV64GV 配置(包含向量指令的通用 64 位 ISA)。將來可能會考慮支持其他 RISC-V 配置,例如通用 32 位配置 (RV32G)。
外部函數(shù)和內(nèi)存 API (預覽版)
引入一個 API,Java 程序可以通過該 API 與 Java 運行時之外的代碼和數(shù)據(jù)進行互操作。通過該 API 可有效地調(diào)用外部函數(shù)( JVM 之外的代碼)和安全地訪問外部內(nèi)存(不受 JVM 管理的內(nèi)存),使得 Java 程序能夠調(diào)用本機庫并處理本機數(shù)據(jù),而不會出現(xiàn) JNI 的脆弱性和危險。
這是個預覽版 API 。
虛擬線程(預覽版)
將虛擬線程引入 Java 平臺。虛擬線程是輕量級線程,可顯著地減少編寫、維護和觀察高吞吐量并發(fā)應用程序的工作量。
這是一個預覽 API,我們 OSC 曾對此進行了詳細介紹 。
Vector API (第四次孵化)
引入一個 API 來表達在運行時能夠可靠編譯的向量計算,在支持的 CPU 架構(gòu)上優(yōu)化向量指令,從而實現(xiàn)優(yōu)于標量計算的性能。
Switch 模式匹配(第三預覽版)
用 switch? 表達式和語句的模式匹配,以及對模式語言的擴展來增強 Java 編程語言。將模式匹配擴展到 switch 中,允許針對一些模式測試表達式,這樣就可以簡明而安全地表達復雜的面向數(shù)據(jù)的查詢。
該特性最早在 Java 17 中作為預覽版出現(xiàn), Java 19 為第三次預覽。
結(jié)構(gòu)化并發(fā)(孵化階段)
引入用于結(jié)構(gòu)化并發(fā)的 API 來簡化多線程編程,結(jié)構(gòu)化并發(fā)將不同線程中運行的多個任務視為單個工作單元,從而簡化錯誤處理、提高可靠性并增強可觀察性。
這是一個孵化階段的 API。
另附 JDK 19 時間表:
其中 Rampdown 主要是修 Bug 和測試階段。
還有一個有意思的事:從 Java 16 開始,每個版本的特性數(shù)量越來越少:
- Java 16:17 個
- Java 17:14 個
- Java 18 :9 個
- Java 19 :7 個
Java 20 不會變成 5 個吧...