JDK/Java 14 可能帶來什么新特性?編輯:胥瑞蓮
DK/Java 13 在一個月前已經發布,該版本帶來了 5 大新特性,筆者觀察到其中的 Text Blocks(文本塊)特性似乎被討論最多。
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 使開發者可以跨程序構建和更新程序狀態,而不會產生輸入和輸出操作通常需要的大量復制和翻譯成本,這對于交易程序而言尤其重要。該增強提案主要目標是確??蛻舳丝梢赃B貫有效地從 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)做好準備。
感謝 胥瑞蓮 女士對本文的大力推薦