www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 21ic電子網(wǎng)
[導(dǎo)讀]按照 Oracle 六個(gè)月一更新的周期來(lái)看,JDK 15 即將于今年 9 月 15 日發(fā)布。據(jù)了解,目前新版的 Java 處于發(fā)布候選階段,包含文本塊、垃圾收集器、隱藏類以及模式匹配和記錄的功能預(yù)覽版。 在發(fā)布前夕,我們不妨先一窺新版 JDK 的新特性: 第二個(gè)外部?jī)?nèi)存訪問(wèn)

按照 Oracle 六個(gè)月一更新的周期來(lái)看,JDK 15 即將于今年 9 月 15 日發(fā)布。據(jù)了解,目前新版的 Java 處于發(fā)布候選階段,包含文本塊、垃圾收集器、隱藏類以及模式匹配和記錄的功能預(yù)覽版。


在發(fā)布前夕,我們不妨先一窺新版 JDK 的新特性:



第二個(gè)外部?jī)?nèi)存訪問(wèn) API(孵化階段),它將使 Java 程序安全高效地訪問(wèn) Java 堆以外的外部存儲(chǔ)器。該 API 應(yīng)該能夠在各種外部?jī)?nèi)存(如本機(jī)、持久和托管堆)上進(jìn)行操作。許多 Java 程序訪問(wèn)外部存儲(chǔ)器,如 lgnite 和 MapDB。API 有助于避免與垃圾回收相關(guān)的成本和不可預(yù)測(cè)性,跨進(jìn)程共享內(nèi)存以及通過(guò)將文件映射到內(nèi)存,來(lái)序列化和取消序列化內(nèi)存內(nèi)容。Java API 目前無(wú)法提供令人滿意的訪問(wèn)外部?jī)?nèi)存的解決方案。但是,隨著新提案的提出,API 不應(yīng)損害 JVM 的安全性。此功能正在 JDK 14 中進(jìn)入較早的孵化器階段,JDK 15 中提供了改進(jìn)。



密封類的預(yù)覽版。密封類與接口一起限制其他類或接口可以擴(kuò)展或?qū)崿F(xiàn)它們。此功能的目標(biāo)包括允許類或接口的開(kāi)發(fā)者控制負(fù)責(zé)實(shí)現(xiàn)該代碼,提供比訪問(wèn)修飾符更具聲明性的方式來(lái)限制超類的使用,以及通過(guò)支持詳盡的內(nèi)容來(lái)支持模式匹配的未來(lái)方向。



刪除源代碼并構(gòu)建對(duì) Solaris/SPARC、Solaris/x64 和 Linux/SPARC 端口的支持,這些端口在 JDK 14 中已棄用,目的是在將來(lái)的版本中刪除它們。許多項(xiàng)目和功能在開(kāi)發(fā)中,如 Valhalla、Loom 和 Panama 都需要對(duì) CPU 架構(gòu)和操作系統(tǒng)特定的代碼進(jìn)行重大更改。放棄對(duì) Solaris 和 SPARC 端口的支持將使 OpenJDK 社區(qū)的貢獻(xiàn)者能夠加速開(kāi)發(fā)新功能,從而推動(dòng)平臺(tái)向前發(fā)展。近年來(lái),Solaris 和 SPARC 都已被 Linux 操作系統(tǒng)和英特爾處理器取代。



記錄是充當(dāng)不可變數(shù)據(jù)的透明載體的類,在 JDK 14 中作為早期預(yù)覽版首次亮相后,將包含在 JDK 15 中的第二個(gè)預(yù)覽版本中。該計(jì)劃的目標(biāo)包括設(shè)計(jì)一個(gè)面向?qū)ο蟮臉?gòu)造,該構(gòu)造表示值的簡(jiǎn)單聚合,幫助程序員專注于對(duì)不可變數(shù)據(jù)建模,而不是可擴(kuò)展行為,自動(dòng)實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)方法(如等值器和評(píng)估器),以及保留長(zhǎng)期存在的 Java 原則(如名義類型和遷移兼容性)。記錄可視為名義元組。



基于愛(ài)德華茲曲線數(shù)字簽名算法(EdDSA) 的加密簽名。EdDSA 是一種現(xiàn)代橢圓曲線方案,與 JDK 中現(xiàn)有的簽名方案相比具有優(yōu)勢(shì)。EdDSA 將僅在 SunEC 提供程序中實(shí)現(xiàn)。與其他簽名方案相比,EdDSA 的安全性和性能有所提高,因此對(duì)其需求更為強(qiáng)烈,目前,它已在 OpenSSL 和 BoringSSL 等加密庫(kù)中得到支持。



通過(guò)替換 java.net.datagram 的基礎(chǔ)實(shí)現(xiàn),重新實(shí)現(xiàn)舊版 DatagramSocket API。Socket 和 java.net.MulticastSocket API 具有更簡(jiǎn)單、更現(xiàn)代的實(shí)現(xiàn)方式,即:1. 易于調(diào)試和維護(hù);2. 與 Project Loom 中正在探索的虛擬線程一起使用。新計(jì)劃是 JDK 增強(qiáng)建議 353 的后續(xù)行動(dòng),該提案重新實(shí)現(xiàn)舊版 Socket API。java.net.datagram.Socket 和 java.net.MulticastSocket 的當(dāng)前實(shí)現(xiàn)可追溯到 JDK 1.0,而 IPv6 仍在開(kāi)發(fā)中。因此,MulticastSocket 的當(dāng)前實(shí)現(xiàn)嘗試以難以維護(hù)的方式協(xié)調(diào) IPv4 和 IPv6。



默認(rèn)情況下,禁用偏向鎖定,并棄用所有相關(guān)的命令行選項(xiàng)。該目的是確定是否需要繼續(xù)支持昂貴、具有維護(hù)成本的偏向鎖定的傳統(tǒng)同步優(yōu)化,該優(yōu)化用于 HotSpot 虛擬機(jī),以減少無(wú)可調(diào)整鎖定的開(kāi)銷。盡管某些 Java 應(yīng)用程序可能會(huì)看到禁用偏鎖定時(shí)性能下降,但偏置鎖定的性能提升通常不如以前明顯。



繼 JDK 14 中的前一個(gè)預(yù)覽之后,第二個(gè)模式匹配預(yù)覽。模式匹配允許程序中的通用邏輯(主要是從對(duì)象中的條件提取組件)可以更簡(jiǎn)潔地表達(dá)。Haskell 和 C# 等語(yǔ)言已采用模式匹配來(lái)實(shí)現(xiàn)簡(jiǎn)潔和安全性。



隱藏類。即不能由其他類的字節(jié)碼直接使用的類,供在運(yùn)行時(shí)生成類并通過(guò)反射間接使用它們的框架使用。隱藏類可以定義為訪問(wèn)控制嵌套的成員,并且可以獨(dú)立于其他類進(jìn)行卸載。該提案通過(guò)啟用標(biāo)準(zhǔn) API 來(lái)定義無(wú)法發(fā)現(xiàn)且具有有限生命周期的隱藏類,從而提高 JVM 上所有語(yǔ)言的效率。JDK 內(nèi)外的框架將能夠動(dòng)態(tài)生成類,而這些類可以定義隱藏類?;?JVM 的許多語(yǔ)言都依賴于動(dòng)態(tài)類生成,以實(shí)現(xiàn)靈活性和效率。該提案的目標(biāo)包括:允許框架將類定義為框架的不可發(fā)現(xiàn)的實(shí)現(xiàn)細(xì)節(jié),以便其他類不能將其鏈接,也不能通過(guò)反射發(fā)現(xiàn);支持使用不可發(fā)現(xiàn)類擴(kuò)展訪問(wèn)控制嵌套;并支持主動(dòng)卸載不可發(fā)現(xiàn)類,因此框架可以靈活地定義盡可能多的類。另一個(gè)目標(biāo)是棄用非標(biāo)準(zhǔn) API misc.Unsafe::defineAnonymousClass,目的是在將來(lái)的版本中棄用。此外,Java 語(yǔ)言不會(huì)因此建議而更改。



根據(jù)提案,Z 垃圾收集器 (ZGC)將從實(shí)驗(yàn)版本過(guò)渡到產(chǎn)品中。ZGC 最初集成在 2018 年 9 月的 JDK 11 中,是一個(gè)可擴(kuò)展的低延遲垃圾回收器。ZGC 是作為實(shí)驗(yàn)功能引入的,因?yàn)?Java 開(kāi)發(fā)人員認(rèn)為,這種規(guī)模和復(fù)雜性的功能應(yīng)該謹(jǐn)慎且逐步地引入。自 2018 年以來(lái),ZGC 已增加了許多改進(jìn),從并發(fā)類卸載、取消使用未使用的內(nèi)存、對(duì)類數(shù)據(jù)共享的支持到改進(jìn)的 NUMA 感知。此外,最大堆大小從 4 TB 增加到 16 TB。支持的平臺(tái)包括 Linux、Windows 和 MacOS。



文本塊。這一功能在 JDK 14 和 JDK 13 中都已實(shí)現(xiàn)預(yù)覽版。它跨越多行源代碼,同時(shí)避免在常見(jiàn)情況下的轉(zhuǎn)義序列,從而簡(jiǎn)化編寫(xiě) Java 程序的任務(wù)。文本塊是一個(gè)字符串文字,它避免了大多數(shù)轉(zhuǎn)義序列,以可預(yù)測(cè)的方式自動(dòng)格式化字符串,并根據(jù)需要為開(kāi)發(fā)人員提供了對(duì)該格式的控制權(quán)。文本塊建議的目標(biāo)是提高 Java 程序中的字符串的可讀性,這些字符串表示以非 Java 語(yǔ)言編寫(xiě)的代碼。另一個(gè)目標(biāo)是支持從字符串文本遷移,規(guī)定任何新構(gòu)造都可以表達(dá)與字符串文本相同的字符串集,解釋相同的轉(zhuǎn)義序列,并且以與字符串文本相同的方式進(jìn)行操作。OpenJDK 開(kāi)發(fā)人員希望添加轉(zhuǎn)義序列來(lái)管理顯式空白和換行控件。



刪除 Nashorn。該功能是 2014 年 3 月發(fā)布的 JDK 8 的新特性,但此后沒(méi)多久就被諸如 GraalVM 等技術(shù)淘汰。根據(jù)提案,OpenJDK 15 建議要求刪除 Nashorn API 和用于調(diào)用 Nashorn 的 jjs 命令行工具。



棄用 RMI 激活機(jī)制,這也是為了將來(lái)為這一功能移除做準(zhǔn)備。事實(shí)上,自 Java 8 以來(lái),RMI 激活機(jī)制一直作為是可選項(xiàng)而非必選項(xiàng),這也被視為是 RMI 中過(guò)時(shí)的部分。當(dāng)下,RMI 的激活機(jī)制如果不棄用會(huì)造成維護(hù)負(fù)擔(dān)。同時(shí)據(jù)了解,RMI 的其他部分暫時(shí)不會(huì)被棄用。


目前,JDK 15 的早期訪問(wèn)版本可以嘗鮮:http://jdk.java.net/15/。繼長(zhǎng)期版本 JDK 11 之后,JDK 12/13/14以及即將發(fā)布的 JDK 15 都將是一個(gè)短期版本。而下一個(gè)長(zhǎng)期支持 (LTS) 版本將是 JDK 17,該版本預(yù)計(jì)于 2021 年 9 月發(fā)布。


Java 15 即將到來(lái),新特性速覽!

那么對(duì)于即將發(fā)布的 JDK 15,你會(huì)更新嗎?


編譯:蘇宓

來(lái)源:CSDN(ID:CSDNnews)



免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

21ic電子網(wǎng)

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉