JDK 18 / Java 18 正式釋出:九項 JDK 增強

snakesss發表於2022-03-29

3 月 22 日,Oracle 官方釋出了 JDK 18 /Java 18 正式版。在效能、穩定性和安全性上面,Java 18 得到了全面的改進提升,其中包括對平臺的九項 JDK 增強(JEP),大大提升了開發人員的工作效率。

據瞭解,JDK 18 是一個短期維護版本,將獲得六個月的支援。儘管如此,但它仍然可用於生產環境中。

JDK 18 版本共包括 9 個 JEP,以及數百個較小的增強功能和一千多個 Bug 修復。

JDK 改進

預設編碼為 UTF-8

將 UTF-8 設定為標準 Java API 的預設字符集。通過此更改,依賴於預設字符集的 API 將在所有實現、作業系統、語言環境和配置中保持一致。

Simple Web Server

一個命令列工具和 API,用於啟動僅提供靜態檔案的最小 Web 伺服器。可用於原型設計、臨時編碼和測試目的,尤其是在教育環境中。

用方法控制程式碼(Method Handles)重新實現核心反射

在 java.lang.invoke 方法控制程式碼的基礎上重新實現 java.lang.reflect.Method、Constructor 和 Field。通過處理反射的底層機制,降低 java.lang.reflect 和 java.lang.invoke API 的維護、開發成本。

網際網路地址解析 SPI

為主機名和地址解析定義服務提供者介面 (SPI),以便 java.net.InetAddress 可以使用第三方解析器。

Java API 文件中的 JEP 程式碼片段

為 JavaDoc 的標準 Doclet 引入了 @snippet 標籤,以簡化在 API 文件中的示例原始碼。

後續 JDK 更新預告

Vector API (第三次進行孵化)

為開發人員提供 API 用於提供可擴充套件的 CPU 架構,相比於非可擴充套件的處理器上在效能更加出眾。

外部函式和記憶體 API(第二次進行孵化)

引入一個 API,使 Java 程式能夠與其他的資料進行互操作。通過有效呼叫外部函式(即 JVM 之外的程式碼),以及安全訪問外部記憶體(即不受 JVM 管理的記憶體),該 API 使 Java 程式能夠呼叫本地庫並處理本地資料,而沒有 JNI 的脆弱性和危險。

Switch 的模式匹配(第二次進行預覽)

通過對 switch 表示式和語句的模式匹配,以及對模式語言的擴充套件來增強 Java 程式語言。將模式匹配擴充套件到 switch 中,允許針對多個模式測試表示式,每個模式都有特定的操作,這樣就可以簡潔安全地表達複雜的面向資料的查詢。

棄用 Finalization,以便在未來刪除

Finalization 目前任然保持預設啟用狀態,但可以禁用它以方便測試。在未來的版本中,它將被預設禁用,並在之後被徹底刪除。依賴於 Finalization 的庫和應用程式的維護者應該考慮遷移到其他資源管理技術,如 try-with-resources 語句。

相關文章