<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JDK 15 要來了,新特性嘗鮮。

          共 3134字,需瀏覽 7分鐘

           ·

          2020-09-20 19:14

          Java Development Kit 15是甲骨文公司發(fā)布 Java SE(標(biāo)準(zhǔn)版)的最新版本,它在6月11日進(jìn)入緩降階段,系列功能現(xiàn)在被凍結(jié)。JDK 15的亮點(diǎn)包括文本塊、隱藏類、外部內(nèi)存訪問API以及密封類和記錄的預(yù)覽。

          Java升級的下一個(gè)階段是另一個(gè)緩降階段,從現(xiàn)在起到8月20日有兩個(gè)可選版本。預(yù)計(jì)9月15日正式上市。JDK15緊隨3月17日發(fā)布的JDK14。甲骨文公司遵循標(biāo)準(zhǔn)Java六個(gè)月的發(fā)布計(jì)劃,新版本每年發(fā)布兩次。

          第二個(gè)孵化器外部內(nèi)存訪問API,它可以使Java程序安全、高效地訪問Java堆棧之外的外部內(nèi)存。API應(yīng)該能夠?qū)Ω鞣N類型的外部內(nèi)存進(jìn)行操作,例如本機(jī)內(nèi)存、持久內(nèi)存和托管堆。許多Java程序訪問外存,如Ignite和MapDB。API將有助于避免垃圾收集相關(guān)的成本和不可預(yù)測性,跨進(jìn)程共享內(nèi)存,并通過將文件映射到內(nèi)存來序列化和反序列化內(nèi)存內(nèi)容。javaAPI目前還沒有為訪問外存提供令人滿意的解決方案。但有了新的提議,即API不應(yīng)該破壞JVM的安全性。這個(gè)功能在jdk14中經(jīng)歷了早期的孵化階段,在jdk15中進(jìn)行了改進(jìn)。

          密封類的預(yù)覽。與接口一起,密封類限制了那些可以擴(kuò)展或執(zhí)行的其它類或接口。此特性的目標(biāo)包括允許類或接口的作者控制由哪些代碼負(fù)責(zé)實(shí)現(xiàn)它,并提供比訪問修飾符更具聲明性的方式來限制超類的使用,還有通過支持對模式的詳盡分析來支持模式匹配的未來方向。

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

          記錄作為不可變數(shù)據(jù)的透明載體的類,在jdk14中作為早期預(yù)覽發(fā)布之后,將被包含在jdk15的第二個(gè)預(yù)覽版本中。該計(jì)劃的目標(biāo)包括設(shè)計(jì)一個(gè)面向?qū)ο髽?gòu)造來表達(dá)一個(gè)簡單的值聚合。以協(xié)助程序員專注于不可變數(shù)據(jù)的建模,而非擴(kuò)展性行為。自動(dòng)實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的方法,如equals和assessors,并保留Java中長期存在的原則,如名義類型和遷移兼容性。記錄可以看作是名義元組。

          基于愛德華曲線數(shù)字簽名算法(EdDSA)的密碼簽名。EdDSA是一種現(xiàn)代的橢圓曲線方案,對比JDK中現(xiàn)有的簽名方案更具有優(yōu)勢。EdDSA將僅在SunEC提供程序中執(zhí)行。與其他簽名方案相比,EdDSA具有更高的安全性和性能,因此受到人們的青睞;加密庫中已經(jīng)支持EdDSA,如OpenSSL和BoringSSL。

          通過替換java.net.datagram.Socket和java.net.MulticastSocket APIs的實(shí)現(xiàn)以更簡單和更現(xiàn)代的方式重新實(shí)現(xiàn)以前的DatagramSocket API。且易于調(diào)試和維護(hù)使用項(xiàng)目中當(dāng)前正在探索的虛擬線程。新計(jì)劃是JDK增強(qiáng)建議353的后續(xù),該提議重新實(shí)現(xiàn)了遺留的Socket API。當(dāng)前java.net.datagram.Socket和java.net.MulticastSocket的實(shí)現(xiàn)可以回溯到j(luò)dk1.0,那時(shí)IPv6還在開發(fā)中。因此,當(dāng)前的MulticastSocket執(zhí)行試圖以難以維護(hù)的方式調(diào)節(jié)IPv4和IPv6。

          默認(rèn)情況下禁用偏向鎖定并棄用所有相關(guān)的命令行選項(xiàng)。其目標(biāo)是確定是否需要繼續(xù)支持高代價(jià)維護(hù),及偏向鎖的遺留同步優(yōu)化,該優(yōu)化用于熱點(diǎn)虛擬機(jī),以減少競爭性鎖定的開銷。盡管某些Java應(yīng)用程序可能會(huì)在禁用偏向鎖定的情況下出現(xiàn)性能的回歸,但是偏向鎖的性能增益通常不如以前那么明顯。instanceof匹配第二個(gè)預(yù)覽模式,緊隨JDK 14中之前的預(yù)覽。模式匹配允許程序中的通用邏輯,主要是從對象中有條件地提取組件,以更簡潔地表達(dá)。Haskell和C等語言因其簡潔和安全而采用了模式匹配。

          隱藏類,即不能被其他類字節(jié)碼直接使用的類,傾向于借助框架使用,框架會(huì)在運(yùn)行時(shí)生成類并通過反射間接使用它們。隱藏類可被定義為訪問控制嵌套的成員,并且可以獨(dú)立于其他類進(jìn)行卸載。這項(xiàng)提議將提高JVM上所有語言的效率,方法是使用標(biāo)準(zhǔn)API定義不可發(fā)現(xiàn)且生命周期有限的隱藏類。

          JDK內(nèi)外的框架將能夠動(dòng)態(tài)生成這樣的類,其可以定義隱藏類。許多構(gòu)建在JVM上的語言都依賴于動(dòng)態(tài)類生成來提高靈活性和效率。該建議的目標(biāo)包括:允許框架將類定義為框架內(nèi)無法發(fā)現(xiàn)的實(shí)現(xiàn)細(xì)節(jié),因此它們不能被其他類鏈接,也不能通過反射發(fā)現(xiàn);借助不可發(fā)現(xiàn)類,支持?jǐn)U展訪問控制嵌套;支持主動(dòng)卸載不可發(fā)現(xiàn)類,以便框架可以根據(jù)需要靈活地定義多個(gè)類。另一個(gè)目標(biāo)是反對非標(biāo)準(zhǔn)API,misc.Unsafe::defineAnonymousClass,目的是在將來的版本中不推薦刪除。另外,Java語言不會(huì)因?yàn)檫@個(gè)提議而改變。Z Garbage Collector (ZGC)將由實(shí)驗(yàn)性功能發(fā)展為這個(gè)新議案下的產(chǎn)品。ZGC集成至2018年9月發(fā)布的JDK 11中,是一個(gè)可伸縮的低延遲垃圾收集器。ZGC是作為一種實(shí)驗(yàn)性的功能引入的,因?yàn)镴ava的開發(fā)人員認(rèn)為,這種規(guī)模和復(fù)雜性的特性應(yīng)該謹(jǐn)慎而逐步地引入。自那時(shí)起,改進(jìn)了許多功能,包括并發(fā)類卸載、不提交未使用的內(nèi)存、支持?jǐn)?shù)據(jù)類共享到改進(jìn)的NUMA感知和多線程堆預(yù)處理。另外,最大堆大小已從4TB增加到16TB。支持的平臺(tái)包括Linux、Windows和MacOS。


          在jdk14和jdk13中預(yù)覽的文本塊旨在簡化Java程序編寫任務(wù),其可使跨越幾行源代碼的字符串變得容易表達(dá),同時(shí)避免了常見情況下的轉(zhuǎn)義序列。文本塊是一個(gè)多行字符串文本,它避免了使用過多轉(zhuǎn)義序列,并以可預(yù)測的方式自動(dòng)格式化字符串,并在需要時(shí)為開發(fā)人員提供對格式的控制。文本塊方案的目的是增強(qiáng)Java程序中表示用非Java語言編寫字符串的可讀性。另一個(gè)目標(biāo)是支持字符串文本的遷移,以確保任何新的構(gòu)造都可以將同一組字符串表示為字符串文本,解釋相同的轉(zhuǎn)義序列,并以與字符串文本相同的方式進(jìn)行操作。OpenJDK開發(fā)人員希望添加轉(zhuǎn)義序列來管理顯式的空白和換行控制。Shenandoah low-pause-time垃圾收集器將成為產(chǎn)品的一個(gè)特性,并將退出實(shí)驗(yàn)階段。一年前,它已經(jīng)被集成到j(luò)dk12中。

          2014年3月在jdk8中首次亮相的Nashorn被移除,由于其被GraalVM等技術(shù)淘汰。OpenJDK 15提議要求刪除Nashorn APIs和用于調(diào)用Nashorn的jjs命令行工具。

          棄用RMI激活機(jī)制,以方便將來刪除。由于RMI激活機(jī)制是RMI中一個(gè)過時(shí)的功能,自java8以來一直作為可選項(xiàng)。RMI激活會(huì)持續(xù)地增加維護(hù)負(fù)擔(dān)。而RMI的其他部分不會(huì)被棄用。jdk15的早期訪問構(gòu)建可以在java.jdk.net查看 JDK15將是一個(gè)短期特性發(fā)布版,根據(jù)Oracle六個(gè)月的發(fā)布cadence,它將支持6個(gè)月。下一個(gè)長期支持(LTS)版本將是JDK17,它將在2021年9月發(fā)布,它將獲得數(shù)年的支持。目前的LTS版本是JDK 11,發(fā)布于2018年9月。


          — 本文結(jié)束 —


          瀏覽 61
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久秘 成人久久无码 | 国产综合中文字幕 | 看操逼的网站 | 日日夜夜91 | 久久福利|