Java 開發(fā)工具包19(JDK 19)將于今年 9 月發(fā)布,現(xiàn)已功能完善,目前處于第二階段。該版本的七項功能包括結構化并發(fā)、記錄模式、外部函數和內存 API 的預覽,以及對開源 Linux/RISC-V 指令集架構 (ISA) 的支持。對java感興趣的同學可以參加java培訓,可以獲得快速有效的學習。
JDK 19的特點包括:
結構化并發(fā),處于孵化器階段,旨在通過結構化并發(fā) API 簡化多線程編程。這種并發(fā)性將在不同線程中運行的多個任務視為一個工作單元。
可以嵌套記錄模式和類型模式,以實現(xiàn)聲明性、強大且可組合的數據導航和處理形式。該提案的目標包括擴展模式匹配以表達更復雜、可組合的數據查詢,同時不改變類型模式的語法或語義。該提案基于 2021 年 3 月在 JDK 16 中交付的 instanceof 的模式匹配。未來的計劃可能要求使用數組模式和可變參數模式等功能擴展記錄模式。記錄模式是 Project Amber 的一部分,旨在探索和孵化更小的、面向生產力的 Java 特性。在java培訓中,有很多關于Java 開發(fā)工具的培訓課程,在專業(yè)老師的教學指導下,可以很全面地掌握java開發(fā)的相關知識和技能。
一個外部函數和內存 API 的預覽,它將引入一個 API,Java 程序可以通過該 API 與 Java 運行時之外的代碼和數據進行互操作。通過有效地調用外部函數(即 JVM 之外的代碼)和安全地訪問外部內存(即不受 JVM 管理的內存),API 使 Java 程序能夠調用本地庫和處理本地數據,而沒有Java本地接口(JNI)的危險和脆弱性。外部函數和內存 API 結合了兩個早期孵化的 API:外部內存訪問 API 和外部鏈接器 API。外部函數和內存 API 之前在 JDK 17 中孵化并在 JDK 18 中重新孵化。該提案的目標包括易用性、性能、通用性和安全性。
目標包括使以簡單的每請求線程樣式編寫的服務器應用程序能夠以接近最佳的硬件利用率進行擴展,使使用 java.lang 線程 API 的現(xiàn)有代碼能夠以最小的更改采用虛擬線程,并啟用故障排除、調試和 使用現(xiàn)有 JDK 工具分析虛擬線程。本提案的目標不是更改 Java 中的基本并發(fā)模型或在 Java 語言或 Java 庫中提供新的數據并行結構。刪除傳統(tǒng)的線程實現(xiàn)或靜默遷移現(xiàn)有應用程序以使用虛擬線程也不是目標。想學習java技術的同學,不妨報個Java培訓班,有明確清晰的學習路線,理論知識+實戰(zhàn)操作,可以獲得快速提升。
每個模式都有特定的操作,因此可以簡潔安全地表達面向數據的復雜查詢。此功能之前在 JDK 17 和 JDK 18 中進行了預覽。第三次預覽將添加改進,包括用 switch 塊中的 when 子句替換受保護的模式。此外,當選擇器表達式的值為null時,模式切換的運行時語義與傳統(tǒng)切換語義更加一致。該計劃的目標包括通過允許模式出現(xiàn)在案例標簽中來擴展 switch 表達式和語句的表現(xiàn)力和適用性。其他目標包括允許開發(fā)人員在需要時放松 switch 的歷史性空敵意,提高 switch 語句的安全性,并確保現(xiàn)有的 switch 表達式和語句繼續(xù)編譯而無需更改并以相同的語義執(zhí)行。
從而實現(xiàn)優(yōu)于等效標量計算的性能。使用 API 的開發(fā)人員獲得了一種在 Java 中編寫復雜矢量算法的方法,使用 HotSpot 自動矢量化器,但使用的用戶模型使矢量化更加可預測和健壯。矢量 API 之前被孵化到 JDK 16、JDK 17 和 JDK 19 中。
對 JDK 19 提出的 API 的改進包括對 MemorySegments 加載和存儲向量的增強,正如 外部函數和內存API預覽所定義的那樣。JDK 19 還將添加兩個跨通道向量操作,壓縮和擴展,以及一個互補向量掩碼壓縮操作。壓縮向量操作將由掩碼選擇的源向量的通道按通道順序映射到目標向量,而擴展操作則相反。壓縮操作在過濾查詢結果時很有用。java培訓課程結構良好,以正確的順序涵蓋了所有這些基本主題,使你的學習更加輕松。
在向量 API 的另一個補充中,將擴展逐位積分通道操作,包括計算一個位的數量、反轉位的順序以及壓縮和擴展位等操作。API 的目標包括清晰簡潔、與平臺無關、在 x64 和 AArch64 架構上具有可靠的運行時和編譯性能,以及啟用“優(yōu)雅”降級,以應對向量計算在運行時無法完全表示為一系列 矢量運算。
通過 Linux/RISC-V 移植,Java 將獲得對硬件指令集的支持,該指令集已被廣泛的語言工具鏈支持。RISC-V 實際上是一系列相關的 ISA。Linux/RISC-V 端口僅支持 RISC-V 的 RV64GV 配置,RISC-V 是一種包含矢量指令的通用 64 位 ISA。Java 的開發(fā)者將來可能會考慮其他 RISC-V 配置。
該端口將支持以下 HotSpot VM 選項:模板解釋器、C1(客戶端)JIT 編譯器、C2(服務器)JIT 編譯器,以及包括 ZGC 和 Shenandoah 在內的所有當前主線垃圾收集器。實際移植幾乎完成; JDK 增強提案 (JEP) 的重點是將端口集成到 JDK 主線存儲庫中。
與 JDK 18 一樣,JDK 19 將是一個短期版本,只有六個月的頂級 Premier 支持。之前的版本 JDK 17 是一個長期支持 (LTS) 版本,提供了數年的支持。想要快速學習java,建議參加java培訓班,有針對式的學習,避免多走彎路。