天天看點

如今甲骨文正式釋出Java 14……

甲骨文兩年來,每六個月如約釋出新版本的Java,Oracle JDK 14為開發人員帶來創新功能和新特性預覽。Oracle JDK 14增加了一些新特性來提高開發人員工作效率,這些新特性包括:對switch表達式的Java語言支援,用于持續監控JDK Flight Recorder資料的新API,以及将低延遲Z垃圾收集器擴充到macOS和Windows中,此外新版本包括三個預覽特性:instanceof模式比對(JEP 305)、記錄類 (JEP 359)和文本塊(JEP 368)

如今甲骨文正式釋出Java 14(Oracle JDK 14)。

秉承甲骨文對加速創新的一貫承諾,Java保持每六個月釋出一次新版本,為企業和開發人員社群提供新的增強功能。新版Java開發工具包(JDK)提供了許多新特性,其中包括兩個備受期待的新預覽特性:instanceof模式比對(JEP 305)和記錄類(JEP 359)以及第二次作為預覽特性的文本塊(JEP 368)。

此外,最新版Java還增加了對switch表達式的Java語言支援,公開了用于持續監視DK Flight Recorder資料的全新API,将低延遲Z垃圾收集器的可用性擴充至macOS和Windows,并在孵化器子產品中封裝了獨立Java應用和新的外部記憶體通路API,以此支援安全、高效地通路Java堆外部的記憶體。

“Java 維持了每六個月釋出新版本的節奏,讓開發人員能盡快嘗試到許多原本需要等待數年的功能,這個優勢在Java 14中得到了進一步展現。”甲骨文公司Java平台開發副總裁Georges Saab表示,“JDK 14不僅帶來很多幫助開發者提高工作效率的增強功能,而且首次提供來自Project Panama等項目的重要内容,包括外部存儲器通路API增強(JEP 370)以及Project Amber的持續改進,例如模式比對(JEP 305)和記錄類(JEP 359)。”

Java 14發行版是整個行業通力合作的成果,這其中包括開放評審、每周建構和一直以來甲骨文工程師通過OpenJDK社群和Java Community Process與全球Java開發人員社群成員間的廣泛合作。

Java 14的新增特性主要包括以下:

JEP 305:instanceof模式比對(Pattern Matching for instanceof,預覽版) — 該預覽特性可通過instanceof運算符模式比對來增強Java。使用該特性,開發人員可以移除掉常見的樣闆代碼,寫出更加簡潔的類型安全代碼,進而提高工作效率。

JEP343:打包工具(Packaging Tool,孵化階段)— 支援開發人員打包Java應用并以平台特定格式進行分發。這有助于開發人員開發那些要求運作時和應用捆綁在單一傳遞成果中的現代應用。Java 14在孵化器子產品中引入了此工具,将非最終版API和非最終版工具提供給開發人員以擷取回報,這些API或工具在未來版本中可能會被保留或移除。

JEP 345:适用于G1的NUMA感覺記憶體配置設定 (NUMA-Aware Memory Allocation for G1)— 改進非一緻性記憶體通路(NUMA)系統上的G1垃圾收集器的整體性能。

JEP 349:JFR事件流(JFR Event Streaming) — 公開JDK Flight Recorder (JFR)資料以便持續監控。這有助于簡化各種工具和應用對JFR資料的通路,并激勵進一步創新。

JEP 352:非易失性映射位元組緩沖區(Non-Volatile Mapped Byte Buffers) — 在使用非易失性記憶體時,為JDK添加一種檔案映射模式,擴充對非易失性記憶體的通路。

JEP 358:有用的NullPointerExceptions(Helpful NullPointerExceptions) — 準确描述哪個變量為null并提供其他有用資訊,進而提高NullPointerExceptions的可用性。這将提高開發人員的工作效率,改進許多開發和調試工具的品質。

JEP 359:記錄類(Records,預覽版)— 該預覽特性通過一種緊湊的文法來聲明儲存淺層不可變資料的類。此特性有助于大幅減少該類中的樣闆代碼,不過其最大的優勢在于可以将資料模組化為資料。使用者可以輕松、清楚、簡潔地聲明這些淺層不可變資料聚合。

JEP 361:Switch表達式(Switch Expressions,标準版)— 在JDK 12和JDK 13中,Switch表達式為預覽特性,現已成為标準特性。它允許使用switch作為語句或表達式。此特性簡化了日常編碼,并為此版本中的模式比對(JEP 305)預覽特性做好了準備。

JEP 364:macOS上的ZGC以及JEP 365:Windows上的ZGC — 盡管大多數需要ZGC的使用者也需要Linux環境的可擴充性,但通常需要通過部署和測試以便在macOS和Windows上支援ZGC。還有一些針對Windows和macOS的桌面應用也将受益于ZGC。

JEP 368:文本塊(Text Blocks,第二次預覽版)— 文本塊作為預覽特性首次引入Java 13後收到了衆多最終使用者的回報。現在,文本塊得到了增強,再次作為預覽特性出現在Java 14中,目标成為未來JDK版本的标準特性。使用文本塊可以輕松表達跨多行源代碼的字元串。它提高了Java程式中以非Java語言編寫的代碼的字元串的可讀性;它約定,任何新構造的文本塊都可以用字元串相同的字元集表示,解釋相同的轉義序列并以與字元串相同的方式進行操作。

JEP370:外部記憶體通路API(Foreign-Memory Access API,孵化階段)— 此API可允許Java程式安全、高效地通路Java堆之外的外部記憶體。

對于尋求商業支援的使用者和企業,甲骨文還提供一種低成本、可預測的支援解決方案 — Oracle Java SE訂閱服務。目前該服務已得到全球成千上萬家不同規模類型組織的廣泛使用。通過該服務,使用者可以獲得Java SE許可證以及所需系統的全面支援而且随需随用,并可以做到定期直接從甲骨文獲得所支援版本經過測試與認證的性能、穩定性及安全性更新。

Java作為一直以來都是深受軟體開發者青睐的首選程式設計語言之一,伴随着Java 14創新功能的按時傳遞,對未來的周詳規劃以及對生态系統的持續投入,Java平台将繼續為現代應用開發注入動力。

繼續閱讀