JDK/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 14EA版本下載地址:https://jdk.java.net/13
最后,需要注意的是EA階段的特性也有可能永遠不會出現在最終的JDK/Java 14正式GA版本中。