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