JDK12大家都非常熟悉了,JDK12全稱Java SE Development Kit 12目前已經(jīng)正式發(fā)布了,新的Java JDK 12正式版中存在兩套 64 位 ARM 實(shí)現(xiàn),主要存在于 src/hotspot/cpu/arm 和 open/src/hotspot/cpu/aarch64 目錄。兩者都實(shí)現(xiàn)了 aarch64,現(xiàn)在將只保留后者,刪除由 Oracle 提供的 arm64。這將使貢獻(xiàn)者將他們的精力集中在單個(gè) 64 位 ARM 實(shí)現(xiàn)上,并消除維護(hù)兩套實(shí)現(xiàn)所需的重復(fù)工作。本站帶來(lái)了全新的Java SE Development Kit 12,歡迎大家下載使用。
JDK12安裝教程
1、在本站下載并解壓縮后,雙擊“jdk-12_windows-x64_bin.exe”,點(diǎn)擊下一步
2、繼續(xù)點(diǎn)擊下一步
3、軟件正在安裝,稍等片刻即可
4、Java SE Development Kit(JDK)12安裝成功,點(diǎn)擊關(guān)閉結(jié)束安裝向?qū)?/p>
Java 12 帶來(lái)了一系列新特性:
189 Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 低暫停時(shí)間的 GC
230 Microbenchmark Suite 微基準(zhǔn)測(cè)試套件
325 Switch Expressions (Preview) Switch 表達(dá)式
334 JVM Constants API JVM 常量 API
340 One AArch64 Port, Not Two 只保留一個(gè) AArch64 實(shí)現(xiàn)
341 Default CDS Archives 默認(rèn)類數(shù)據(jù)共享歸檔文件
344 Abortable Mixed Collections for G1 可中止的 G1 Mixed GC
346 Promptly Return Unused Committed Memory from G1 G1 及時(shí)返回未使用的已分配內(nèi)存
下邊分別來(lái)看看:
jdk12.0.2新特性
189Shenandoah:Alow-Pause-Timegarbagecolector(Experimental)GC。
230MicrobenchmarkSuite微基準(zhǔn)測(cè)試套件。
SwitchExpresions(Preview)Switch表達(dá)式。
334JVMConstantsAPIJVM常量API。
340oneArch64Port,Notwo只保留AArch64實(shí)現(xiàn)。
341DefaultCDSArchives默認(rèn)類數(shù)據(jù)共享歸檔文件。
G1MixedGC可暫停344AbortableMixedColecolectionsforG1。
346PromptlyRetunusedComitedmoryfromg1G1及時(shí)返回未使用的已分配內(nèi)存。
Shenandoah:Alow-Pause-TimegarbageColector
Shenandoah:GC(實(shí)驗(yàn)性功能)暫停時(shí)間低
新增了一種名為Shenandoah的GC算法,通過(guò)與正在運(yùn)行的Java線程同時(shí)進(jìn)行Evacuation工作,減少GC暫停時(shí)間。使用Shenandoah的暫停時(shí)間與堆大小無(wú)關(guān),這意味著無(wú)論是200MB還是200GB,都會(huì)有相同的暫停時(shí)間。
MicrobenchmarkSuite。
微基準(zhǔn)測(cè)試套件。
JDK源代碼增加了一套微基準(zhǔn)測(cè)試套件,使開發(fā)人員能夠輕松操作現(xiàn)有的微基準(zhǔn)測(cè)試并創(chuàng)建新的基準(zhǔn)測(cè)試。
(Preview)
Switch表達(dá)式(預(yù)覽功能)
擴(kuò)展switch語(yǔ)句,使其不僅可以作為語(yǔ)句(statement),還可以作為表達(dá)式(expression),兩種寫法都可以使用傳統(tǒng)的switch語(yǔ)法,或者使用簡(jiǎn)化的casel->模式來(lái)匹配不同范圍的語(yǔ)法并控制執(zhí)行流。這些變化將簡(jiǎn)化日常編碼工作,并為switch中的模式匹配做好準(zhǔn)備。
JVMConstantsAPI。
JVM常量API。
引入API模擬關(guān)鍵文件和運(yùn)行時(shí)工件的描述,特別是可以從常量池中加載的常量。在新的java.lang.invoke.constant包中,定義了一系列基于值的符號(hào)引用(JVMS5.1)類型,它們可以描述每個(gè)可加載常量。符號(hào)引用以純nominal的形式描述可加載常量,與類加載或可訪問(wèn)性不同。有些類別可以作為自己的符號(hào)引用(如String),而對(duì)于可鏈接常量,則定義了一系列符號(hào)引用類型(ClaSSDesc、Methodtypedesc、MethodHandledlededesc和Dynamicccontantandesc),其中包含描述這些常量的nominal信息。
Onearch64Port,Notwo。
只保留一個(gè)AArch64實(shí)現(xiàn)。
刪除所有與arm64相關(guān)的源,同時(shí)保留32位ARM實(shí)現(xiàn)和64位arch64。
JDK中有兩套64位ARM實(shí)現(xiàn),主要存在于src/hotspot/cpu/arm和open/src/hotspot/cpu/arch64目錄中。兩者都實(shí)現(xiàn)了aarch64,現(xiàn)在只保留了后者,刪除了Oracle提供的arm64。這將使貢獻(xiàn)者專注于單個(gè)64位ARM實(shí)現(xiàn),并消除維護(hù)兩套實(shí)現(xiàn)所需的重復(fù)工作。
DefaultCDSArchives。
默認(rèn)數(shù)據(jù)共享歸檔文件。
對(duì)于64個(gè)平臺(tái),使用默認(rèn)類列表增強(qiáng)JDK構(gòu)建過(guò)程,生成類數(shù)據(jù)共享(classdata-sharing,CDS)檔。
AbortableMixedColectionsforg1。
G1MixedGC可中止。
如果G1MixedGC有可能超過(guò)暫停目標(biāo),則可以暫停。
PromptlyRetunusedComitedmoryfromg1。
G1及時(shí)返回未使用的已分配內(nèi)存。
增強(qiáng)G1GC,在業(yè)余時(shí)間自動(dòng)將Java堆內(nèi)存返回操作系統(tǒng)。為了實(shí)現(xiàn)將最大內(nèi)存返回操作系統(tǒng)的目標(biāo),G1將在應(yīng)用程序不活動(dòng)期間定期執(zhí)行或觸發(fā)并發(fā)周期,以確定Java堆的整體使用。這將導(dǎo)致它自動(dòng)將Java堆的未使用部分返回到操作系統(tǒng)。在用戶控制下,可以選擇性地執(zhí)行完整的GC,以最大化返回的內(nèi)存。