JDK/Java 14 可能帶來什麼新特性?

DK/Java 13 在一個月前已經發布,該版本帶來了 5 大新特性,筆者觀察到其中的 Text Blocks(文本塊)特性似乎被討論最多。文本塊特性與常見的 Python """any input""" 特性一樣,它支持多行字符串文字,可以不需要使用大多數轉義序列,同時可以讓開發人員控制格式。雖然這不是特別複雜的特性,但對於開發中想將 HTML 代碼引入 Java 來說是極大的便利,代碼可讀性也極大提高。

關於 Java 13 的其它新特性這裏不贅述,感興趣的話可以看看文末推薦的幾篇內容。這裏想寫的其實是:按照慣例,可以開始盯着 Java 14 的新特性了。

JDK 14 現在處於 Early-Access(EA,早期訪問)階段,按照發布週期正式版本將於明年 3 月 17 日發佈。

目前最新版本是 build 17,各個 build 的更新說明可以查看:https://jdk.java.net/13/release-notes。

本文引用 InfoWorld 的報導,介紹一下目前 JDK 14 中可能會出現的 3 項新特性。其中有兩個特性被正式提了出來,還有一個特性則是預測性質,分別看看:

  • 改進 NullPointerExceptions,通過準確描述哪些變量爲 null 來提高 JVM 生成的異常的可用性。該提案的作者希望爲開發人員和支持人員提供有關程序爲何異常終止的有用信息,並通過更清楚地將動態異常與靜態程序代碼相關聯來提高對程序的理解。
  • 非易失性映射的字節緩衝將添加新的 JDK 特定文件映射模式,該模式允許 FileChannel API 用於創建引用非易失性內存(NVM)的 MappedByteBuffer 實例。NVM 使開發者可以跨程序構建和更新程序狀態,而不會產生輸入和輸出操作通常需要的大量複製和翻譯成本,這對於交易程序而言尤其重要。該增強提案主要目標是確保客戶端可以連貫有效地從 Java 程序訪問和更新 NVM;第二個目標是使用 Unsafe 類中定義的受限制 JDK 內部 API 來實現此提交行爲,因此可以由可能需要提交給 NVM 的 MappedByteBuffer 之外的其它類重用;另一個目標是允許現有 API 跟蹤在 NVM 上映射的緩衝區,以進行監控和管理。
  • Switch Expressions 在 JDK 12 與 13 中都是預覽狀態,預計在 JDK 14 中成爲穩定特性。switch 表達式擴展了 switch 語句,使其不僅可以作爲語句(statement),還可以作爲表達式(expression),並且兩種寫法都可以使用傳統的 switch 語法,或者使用簡化的“case L ->”模式匹配語法作用於不同範圍並控制執行流。這些更改將簡化日常編碼工作,併爲 switch 中的模式匹配(JEP 305)做好準備。

JDK 14 EA 版本下載地址:https://jdk.java.net/13

最後,需要注意的是 EA 階段的特性也有可能永遠不會出現在最終的 JDK/Java 14 正式 GA 版本中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章