溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JDK 16:Java 16的新功能有哪些

發(fā)布時間:2021-10-22 16:31:09 來源:億速云 閱讀:142 作者:iii 欄目:編程語言

本篇內(nèi)容介紹了“JDK 16:Java 16的新功能有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

可以在jdk.java.net上找到適用于Linux,Windows和MacOS的JDK 16的早期版本。與JDK 15一樣,JDK  16將是一個短期版本,支持六個月。將于2021年9月發(fā)布的JDK 17將是一個長期支持(LTS)版本,將獲得數(shù)年的支持。當(dāng)前的LTS版本JDK  11已于2018年9月發(fā)布。

JDK 16將作為標(biāo)準Java版本的參考實現(xiàn),將在明年3月到來。

截至10月8日,八項提案正式針對JDK16。Java16的新功能包括:

  • 將ZGC(Z垃圾收集器)線程堆棧處理從安全點safepoints遷移到并發(fā)階段。該計劃的目標(biāo)包括從ZGC安全點中刪除線程堆棧處理。使堆棧處理變得惰性,協(xié)作,并發(fā)和增量;從ZGC安全點刪除所有其他每線程根處理;并為其他HotSpot  VM子系統(tǒng)提供了一種機制來延遲處理堆棧。這樣,ZGC使HotSpot中的GC暫停和可伸縮性問題成為過去。到目前為止,隨著堆大小和元空間大小而擴展的GC操作已經(jīng)從安全點操作中移出并進入并發(fā)階段。這些包括標(biāo)記,重定位,參考處理,類卸載和大多數(shù)根處理。GC安全點中唯一仍進行的活動是根處理和有時間限制的標(biāo)記終止操作的子集。這些根目錄包括Java線程堆棧和其他線程根目錄,這些根目錄存在問題,因為它們隨線程數(shù)的增長而擴展。為了超越當(dāng)前狀況,必須將包括堆棧掃描在內(nèi)的每線程處理移至并發(fā)階段。使用此計劃,改進的延遲的吞吐成本應(yīng)該是微不足道的,并且在典型計算機上的ZGC安全點內(nèi)花費的時間應(yīng)少于一毫秒。

  • 彈性元空間能力,它可以將未使用的HotSpot  VM類元數(shù)據(jù)(元空間)內(nèi)存更迅速地返回給操作系統(tǒng),從而減少了元空間的占用空間并簡化了元空間代碼,從而降低了維護成本。元空間存在大量的堆外內(nèi)存使用問題。該計劃要求用基于伙伴的分配方案替換現(xiàn)有的內(nèi)存分配器,提供一種將內(nèi)存劃分為多個分區(qū)以滿足內(nèi)存請求的算法。這種方法已在Linux內(nèi)核等地方使用,它將使在較小的塊中分配內(nèi)存以減少類加載器的開銷變得切實可行。碎片也將減少。此外,從操作系統(tǒng)到內(nèi)存管理領(lǐng)域的內(nèi)存承諾將根據(jù)需要延遲執(zhí)行,減少了從大型舞臺開始但不立即使用它們或可能未完全使用它們的裝載機的占地面積。為了充分利用伙伴分配所提供的彈性,將元空間內(nèi)存排列成大小統(tǒng)一的顆粒,這些顆??梢员舜霜毩⒌剡M行提交和不提交。

  • 啟用C ++ 14語言功能,以允許在JDK C ++源代碼中使用C ++ 14功能,并提供有關(guān)在HotSpot  VM代碼中可以使用其中哪些功能的特定指南。通過JDK 15,JDK中C ++代碼使用的語言功能已限于C ++ 98/03語言標(biāo)準。使用JDK  11,源代碼已更新,以支持使用更新版本的C ++標(biāo)準進行構(gòu)建。這包括能夠使用支持C ++  11/14語言功能的最新版本的編譯器進行構(gòu)建。本提案不建議在HotSpot之外使用的C ++代碼的樣式或用法更改。但是要利用C  ++語言功能,需要進行一些構(gòu)建時更改,具體取決于平臺編譯器。

  • 孵化器階段的矢量API,其中JDK將裝有一個孵化器模塊,jdk.incubator.vector,以表達可在支持的CPU架構(gòu)上編譯為最佳矢量硬件指令的矢量計算,以實現(xiàn)優(yōu)于等效標(biāo)量計算的性能。向量API提供了一種使用Java編寫復(fù)雜向量算法的機制,該機制使用HotSpot  VM中預(yù)先存在的支持進行向量化,但其用戶模型使向量化更可預(yù)測且更可靠。該提案的目標(biāo)包括提供一個清晰簡潔的API來表達一系列矢量計算,通過支持多種CPU架構(gòu)而與平臺無關(guān),在x64和AArch74架構(gòu)上提供可靠的運行時編譯和性能。優(yōu)雅降級也是一個目標(biāo),

  • 將JDK移植到Windows / AArch74平臺。隨著新的服務(wù)器類和消費類AArch74(ARM64)硬件的發(fā)布,由于需求,Windows /  AArch74已成為重要的平臺。盡管移植本身已經(jīng)基本完成,但該建議的重點是將端口集成到主線JDK存儲庫中。

  • 在x64和AArch74體系結(jié)構(gòu)上,將JDK移植到Alpine Linux和其他使用musl作為其主要C庫的Linux發(fā)行版。Musl是ISO  C和Posix標(biāo)準中描述的標(biāo)準庫功能的Linux實現(xiàn)。由于Alpine  Linux的映像較小,因此已在云部署,微服務(wù)和容器環(huán)境中廣泛采用。Linux的Docker映像小于6MB。在這樣的設(shè)置中讓Java開箱即用地運行,將允許Tomcat,Jetty,Spring和其他流行的框架在這些環(huán)境中本機運行。通過使用jlink減小Java運行時的大小,用戶可以創(chuàng)建專門為運行特定應(yīng)用程序而定制的甚至更小的映像。

  • OpenJDK源代碼庫從Mercurial遷移到Git。推動這一努力的是版本控制系統(tǒng)元數(shù)據(jù)大小以及可用工具和托管方面的優(yōu)勢。

  • 遷移到GitHub,與從Mercurial到Git的遷移有關(guān),JDK 16源代碼存儲庫位于流行的代碼共享站點上。Mercurial  JDK和JDK-sandbox的向Git,GitHub和Skara的過渡已于9月5日完成,現(xiàn)已開放供稿。 

“JDK 16:Java 16的新功能有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI