此外,最新版Java還增加了對switch表達式的Java語言支持,公開了用于持續監視DKFlightRecorder數據的全新API,將低延遲Z垃圾收集器的可用性擴展至macOS和Windows,并在孵化器模塊中封裝了獨立Java應用和新的外部內存訪問API,以此支持安全、高效地訪問Java堆外部的內存。
Java14發行版是整個行業通力合作的成果,這里面包括了開放評審、每周構建和一直以來甲骨文工程師通過OpenJDK社區和JavaCommunityProcess與全球Java開發人員社區成員間的廣泛合作。Java14的新增特性有:
JEP305:instanceof模式匹配(PatternMatchingforinstanceof,預覽版)—該預覽特性可通過instanceof運算符模式匹配來增強Java。使用該特性,開發人員可以移除掉常見的樣板代碼,寫出更加簡潔的類型安全代碼,從而提高工作效率。
JEP343:打包工具(PackagingTool,孵化階段)—支持開發人員打包Java應用并以平臺特定格式進行分發。這有助于開發人員開發那些要求運行時和應用捆綁在單一交付成果中的現代應用。Java14在孵化器模塊中引入了此工具,將非最終版API和非最終版工具提供給開發人員以獲取反饋,這些API或工具在未來版本中可能會被保留或移除。
JEP345:適用于G1的NUMA感知內存分配(NUMA-AwareMemoryAllocationforG1)—改進非一致性內存訪問(NUMA)系統上的G1垃圾收集器的整體性能。
JEP349:JFR事件流(JFREventStreaming)—公開JDKFlightRecorder(JFR)數據以便持續監控。這有助于簡化各種工具和應用對JFR數據的訪問,并激勵進一步創新。
JEP352:非易失性映射字節緩沖區(Non-VolatileMappedByteBuffers)—在使用非易失性內存時,為JDK添加一種文件映射模式,擴展對非易失性內存的訪問。
JEP358:有用的NullPointerExceptions(HelpfulNullPointerExceptions)—準確描述哪個變量為null并提供其他有用信息,從而提高NullPointerExceptions的可用性。這將提高開發人員的工作效率,改進許多開發和調試工具的質量。
JEP359:記錄類(Records,預覽版)—該預覽特性通過一種緊湊的語法來聲明保存淺層不可變數據的類。此特性有助于大幅減少該類中的樣板代碼,不過其最大的優勢在于可以將數據建模為數據。用戶可以輕松、清楚、簡潔地聲明這些淺層不可變數據聚合。
JEP361:Switch表達式(SwitchExpressions,標準版)—在JDK12和JDK13中,Switch表達式為預覽特性,現已成為標準特性。它允許使用switch作為語句或表達式。此特性簡化了日常編碼,并為此版本中的模式匹配(JEP305)預覽特性做好了準備。
JEP364:macOS上的ZGC以及JEP365:Windows上的ZGC—盡管大多數需要ZGC的用戶也需要Linux環境的可擴展性,但通常需要通過部署和測試以便在macOS和Windows上支持ZGC。還有一些針對Windows和macOS的桌面應用也將受益于ZGC。
JEP368:文本塊(TextBlocks,第二次預覽版)—文本塊作為預覽特性首次引入Java13后收到了眾多最終用戶的反饋。現在,文本塊得到了增強,再次作為預覽特性出現在Java14中,目標成為未來JDK版本的標準特性。使用文本塊可以輕松表達跨多行源代碼的字符串。它提高了Java程序中以非Java語言編寫的代碼的字符串的可讀性;它約定,任何新構造的文本塊都可以用字符串相同的字符集表示,解釋相同的轉義序列并以與字符串相同的方式進行操作。
JEP370:外部內存訪問API(Foreign-MemoryAccessAPI,孵化階段)—此API可允許Java程序安全、高效地訪問Java堆之外的外部內存。
對于尋求商業支持的用戶和企業,甲骨文還提供一種低成本、可預測的支持解決方案—OracleJavaSE訂閱服務。目前,該服務已得到全球成千上萬家不同規模類型組織的廣泛使用。通過該服務,用戶可以獲得JavaSE許可證以及所需系統的全面支持,而且可以隨需隨用。這些客戶可以定期直接從甲骨文獲得所支持版本經過測試與認證的性能、穩定性及安全性更新。
Java一直以來都是深受軟件開發者青睞的首選編程語言。伴隨著Java14創新功能的按時交付,對未來的周詳規劃以及對生態系統的持續投入,Java平臺將繼續為現代應用開發注入動力。
其他資源
甲骨文將于3月26日舉辦Java14網絡研討會,屆時安排有現場問答—點擊這里注冊
閱讀Java14技術博文—點擊這里
了解有關OracleOpenJDK14正式發布版的更多信息—點擊這里
通過ProjectAmber、ProjectPanama、ProjectLoom和ProjectValhalla了解Java如何推進未來創新