0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java 12重磅發(fā)布,新特性解讀

5RJg_mcuworld ? 來源:YXQ ? 2019-03-21 17:28 ? 次閱讀

Java 9 之前,當(dāng)一個(gè)版本被宣布為首選版本,存在一個(gè)“培育”(bedded-in)新 GA 版本的重疊期。在此期間,上一個(gè)版本將會繼續(xù)進(jìn)行免費(fèi)更新。為確保新舊版本間的干凈切換,即便舊版本已不再是首選版本,通常也會繼續(xù)維護(hù) 12 個(gè)月以上。但是隨著 Java 版本發(fā)布更改為遵循嚴(yán)格的時(shí)間表后,事實(shí)上宣告了傳統(tǒng)的免費(fèi)支持期將壽終正寢。

Oracle 對 Java 8 的官方支持時(shí)間持續(xù)到 2020 年 12 月,之后將不再為個(gè)人桌面用戶提供 Oracle JDK 8 的修復(fù)更新;在 2019 年 1 月之后,不再提供免費(fèi)的商業(yè)版本更新,屆時(shí)想要繼續(xù)獲得 Oracle 的商業(yè)支持和維護(hù),需付費(fèi)訂閱。

Java 是很多程序員的飯碗,Java 生態(tài)圈下的程序員們似乎對于 Oracle 也有諸多不滿,當(dāng) Java 也像 Android 系統(tǒng)走上版本號的穩(wěn)定道路后,新版本的發(fā)布意義還有那么大嗎?Java 12 已經(jīng)發(fā)布了,但使用版本最多的還是 Java 8,你會選擇升級嗎?

JDK12 如期而至,不知不覺 Java 半年為周期的發(fā)布模式(Half-year-cadence)已經(jīng)成功運(yùn)行了一年多,OpenJDK 社區(qū)和 Oracle 充分展示了其堅(jiān)決的執(zhí)行力。今天當(dāng)然要嘗鮮 JDK12 的新特性,與此同時(shí),筆者也會從不同角度,來分析新發(fā)布模式是否達(dá)到了其初衷。

下載地址:

https://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK 12 新特性一覽:

189:Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)

http://openjdk.java.net/jeps/189

230:Microbenchmark Suite

http://openjdk.java.net/jeps/230

325:Switch Expressions (Preview)

http://openjdk.java.net/jeps/325

334:JVM Constants API

http://openjdk.java.net/jeps/334

340:One AArch64 Port, Not Two

http://openjdk.java.net/jeps/340

341:Default CDS Archives

http://openjdk.java.net/jeps/341

344:Abortable Mixed Collections for G1

http://openjdk.java.net/jeps/344

346:Promptly Return Unused Committed Memory from G1

http://openjdk.java.net/jeps/346

首先值得關(guān)注的是 Switch Expressions,這是一個(gè)為開發(fā)者準(zhǔn)備的特性,我們可以利用具體代碼快速了解一下,下面是傳統(tǒng) statement 形式的 switch 語法:


switch(day) {caseMONDAY:caseFRIDAY:caseSUNDAY:System.out.println(6);break;caseTUESDAY:System.out.println(7);break;caseTHURSDAY:caseSATURDAY:System.out.println(8);break;caseWEDNESDAY:System.out.println(9);break;}

如果有編碼經(jīng)驗(yàn),你一定知道,switch 語句如果漏寫了一個(gè) break,那么邏輯往往就跑偏了,這種方式既繁瑣,又容易出錯。如果換成 switch 表達(dá)式,Pattern Matching 機(jī)制能夠自然地保證只有單一路徑會被執(zhí)行,請看下面的代碼示例:


switch(day) {caseMONDAY, FRIDAY, SUNDAY -> System.out.println(6);caseTUESDAY -> System.out.println(7);caseTHURSDAY, SATURDAY -> System.out.println(8);caseWEDNESDAY -> System.out.println(9);}

更進(jìn)一步,下面的表達(dá)式,為我們提供了優(yōu)雅地表達(dá)特定場合計(jì)算邏輯的方式


intnumLetters =switch(day) {caseMONDAY, FRIDAY, SUNDAY ->6;caseTUESDAY ->7;caseTHURSDAY, SATURDAY ->8;caseWEDNESDAY ->9;};

Switch Expressions 或者說起相關(guān)的 Pattern Matching 特性,為我們提供了勾勒出了 Java 語法進(jìn)化的一個(gè)趨勢,將開發(fā)者從復(fù)雜繁瑣的低層次抽象中逐漸解放出來,以更高層次更優(yōu)雅的抽象,既降低代碼量,又避免意外編程錯誤的出現(xiàn),進(jìn)而提高代碼質(zhì)量和開發(fā)效率。

第二,則是很有現(xiàn)實(shí)意義度 Shenandoah GC。它是 Redhat 主導(dǎo)開發(fā)的 Pauseless GC 實(shí)現(xiàn),從大概 2013 年開始研發(fā),終于取得了重要的階段性成果,與其他 Pauseless GC 類似,Shenandoah GC 主要目標(biāo)是 99.9% 的暫停小于 10ms,暫停與堆大小無關(guān)等。

也許了解 Shenandoah GC 的人比較少,業(yè)界聲音比較響亮的是 Oracle 在 JDK11 中開源出來的 ZGC,或者商業(yè)版本的 Azul C4(Continuously Concurrent Compacting Collector)。但是,筆者認(rèn)為,至少目前,其實(shí)際意義大于后兩者,因?yàn)椋?/p>

使用 ZGC 的最低門檻是升級到 JDK11,對很多團(tuán)隊(duì)來說,這種版本的跳躍并不是非常低成本的事情,更何況是尚不清楚 ZGC 在自身業(yè)務(wù)場景中的實(shí)際表現(xiàn)如何。

而 C4,畢竟是土豪們的選擇,現(xiàn)實(shí)情況是,有多少公司連個(gè)幾十塊錢的 License 都不舍得…

而 Shenandoah GC 可是有穩(wěn)定的 JDK8u 版本發(fā)布的哦,據(jù)我所知已經(jīng)有個(gè)別公司在 HBase 等高實(shí)時(shí)性產(chǎn)品中實(shí)踐許久。

從原理的角度,我們可以參考該項(xiàng)目官方的示意圖,其內(nèi)存結(jié)構(gòu)與 G1 非常相似,都是將內(nèi)存劃分為類似棋盤的 region。整體流程與 G1 也是比較相似的,最大的區(qū)別在于實(shí)現(xiàn)了并發(fā)的 Evacuation 環(huán)節(jié),引入的 Brooks Forwarding Pointer 技術(shù)使得 GC 在移動對象時(shí),對象引用仍然可以訪問。

下面是 jbb15 benchmark 中,Shenandoah GC 相對于其他主流 GC 的表現(xiàn),GC 暫停相比于 CMS 等選擇有數(shù)量級程度的提高,對于 GC 暫停非常敏感的場景,價(jià)值還是很明顯的,能夠在 SLA 層面有顯著提高。當(dāng)然,這種對于低延遲的保證,也是以消耗 CPU 等計(jì)算資源為代價(jià)的,實(shí)際吞吐量表現(xiàn)也不是非常明朗,需要看企業(yè)的實(shí)際場景需求,并不是一個(gè)一勞永逸的解決方案。

其他的一些特性,例如,G1 相關(guān)的兩個(gè)特性是對 G1 在特定場景不足的有效改進(jìn),但談不上是突破性的提高,不再一一列舉。

與 JDK11 這種長期支持版本(Long-Term-Support,LTS)相比,JDK12 似乎關(guān)注度有限,大家對于 JDK 這種頻繁的節(jié)奏也有點(diǎn)麻木了,那么

JDK12 這種非 LTS 版本,是否有什么生產(chǎn)環(huán)境價(jià)值?

Java 新的發(fā)布模式是否達(dá)到了其快速落地和迭代新特性的目的?

也許不會有太多公司直接選擇 JDK12,但個(gè)別的生產(chǎn)實(shí)踐并不遙遠(yuǎn)。比如,我所在部門在實(shí)踐場景中發(fā)現(xiàn),利用 JDK 12 的 Abortable Mixed Collections for G1,解決了 HDFS 在特定場景中 G1 Evacuation 時(shí)間過長的困擾,雖然最后團(tuán)隊(duì)選擇將其 backport 到了自己的 JDK11 版本中,但如果沒有快速交付的預(yù)覽版 JDK12,也不會如此快速的得到結(jié)論。

而對另一個(gè)問題,筆者認(rèn)為目前看是非常成功的,解開了 Java/JVM 演進(jìn)的許多枷鎖,至關(guān)重要的是,OpenJDK 的權(quán)力中心,正在轉(zhuǎn)移到開發(fā)社區(qū)和開發(fā)者手中。在新的模式中,既可以利用 LTS 滿足企業(yè)長期可靠支持的需求,也可以滿足各種開發(fā)者對于新特性迭代的訴求。你可能注意到了 Switch Expressions 被打上了預(yù)覽(Preview)的標(biāo)簽,Shenandoah GC 則是實(shí)驗(yàn)(Experimental)特性,這些都是以往的發(fā)布周期下不大現(xiàn)實(shí)的,因?yàn)橛?2-3 年的最小間隔粒度來實(shí)驗(yàn)一個(gè)特性,基本是不現(xiàn)實(shí)的。

可以預(yù)計(jì),JDK8 在未來的一段時(shí)間仍將是主流,我們已經(jīng)注意到 Amazon、Alibaba、Redhat、AdoptOpenJDK 等等廠商或社區(qū),紛紛發(fā)布了自己的 JDK8 等產(chǎn)品,開始競賽長期支持版本 JDK 的主導(dǎo)權(quán),筆者認(rèn)為這是非常好的跡象,反映了主流廠商對于 Java 的投資力度增大。

是否會帶來 Java/JVM 的碎片化呢?多少會發(fā)生一些,但從目前的合作模式來看,OpenJDK 仍然是合作的中心,主導(dǎo)這 Java 歷史版本維護(hù)和未來的演進(jìn)路線。

一些小鮮肉語言嘲笑 Java,實(shí)現(xiàn)類似功能,Java 代碼要多寫近一倍,程序要笨重一個(gè)數(shù)量級,有些也許是言過其實(shí),但語法的表達(dá)能力和 JVM 的龐大,確實(shí)逐漸成為 Java 發(fā)展的短板,JDK10~12 發(fā)布的不間斷成功,讓我們看到了 Java/JVM 大踏步前進(jìn)的曙光!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2952

    瀏覽量

    104489
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4723

    瀏覽量

    68237

原文標(biāo)題:Java 12正式發(fā)布,新特性解讀!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    UQI優(yōu)奇重磅發(fā)布全棧式無人物流解決方案

    近日,“無人物流主義者”UQI優(yōu)奇以“新物種、新范式、新紀(jì)元”為主題,在CeMAT 2024重磅發(fā)布全棧式無人物流解決方案,并推出全新產(chǎn)品“全天候”“雙驅(qū)”重載無人叉車F3000,為物流行業(yè)樹立創(chuàng)新應(yīng)用標(biāo)桿,加速無人物流的變革。
    的頭像 發(fā)表于 11-06 14:17 ?160次閱讀

    使用PyTorch在英特爾獨(dú)立顯卡上訓(xùn)練模型

    《PyTorch 2.5重磅更新:性能優(yōu)化+新特性》中的一個(gè)新特性就是:正式支持在英特爾獨(dú)立顯卡上訓(xùn)練模型!
    的頭像 發(fā)表于 11-01 14:21 ?155次閱讀
    使用PyTorch在英特爾獨(dú)立顯卡上訓(xùn)練模型

    依圖天問大模型4.0重磅發(fā)布

    2023年7月,依圖發(fā)布了智能安防領(lǐng)域首個(gè)可實(shí)戰(zhàn)可商用的多模態(tài)大模型—依圖天問1.0。發(fā)布至今,依圖天問大模型基座已完成了兩次迭代升級,并率先在全國50多個(gè)項(xiàng)目中部署應(yīng)用。 近日,在第十屆中國(上海
    的頭像 發(fā)表于 06-18 09:25 ?644次閱讀

    天合光能發(fā)布行業(yè)首款A(yù)I仿生液冷工商業(yè)儲能系統(tǒng)Potentia藍(lán)海2

    重塑光儲設(shè)計(jì),顛覆智造想象,2024年6月12日,天合光能“工商儲進(jìn)化論”新品發(fā)布會于上海浦東隆重召開,行業(yè)首款A(yù)I仿生液冷工商業(yè)儲能系統(tǒng)Potentia藍(lán)海2重磅登場。秉持產(chǎn)品優(yōu)化、技術(shù)創(chuàng)新、服務(wù)精進(jìn)、場景拓展的四維升級理念,
    的頭像 發(fā)表于 06-14 11:17 ?587次閱讀

    2024 TUYA全球開發(fā)者大會盛大啟幕,Cube AI大模型重磅首發(fā)!

    2024TUYA全球開發(fā)者大會上,重磅推出AI大模型、AI開發(fā)工具、AI小程序開發(fā)基座等重量級產(chǎn)品,讓AI價(jià)值真正落地。01重磅發(fā)布涂鴉的首個(gè)AI大模型——CubeA
    的頭像 發(fā)表于 05-31 08:15 ?309次閱讀
    2024 TUYA全球開發(fā)者大會盛大啟幕,Cube AI大模型<b class='flag-5'>重磅</b>首發(fā)!

    全球首款基于文心大模型的學(xué)習(xí)機(jī)—小度學(xué)習(xí)機(jī)Z30重磅發(fā)布

    AI時(shí)代,大模型成為推動智能教育升維發(fā)展的新質(zhì)生產(chǎn)力。5月27日小度科技召開新品發(fā)布會,全球首款基于文心大模型的學(xué)習(xí)機(jī)——小度學(xué)習(xí)機(jī)Z30重磅發(fā)布
    的頭像 發(fā)表于 05-28 09:30 ?603次閱讀

    小米SU7重磅發(fā)布,NGI為夢想之車保駕護(hù)航

    小米SU7重磅發(fā)布,NGI為夢想之車保駕護(hù)航 ? 3月28日晚,備受矚目的小米SU7正式發(fā)布,作為小米旗下首款C級高性能生態(tài)科技智能轎車,SU7搭載了小米五大核心黑科技,包括800V碳化硅高壓
    發(fā)表于 05-20 11:58 ?3333次閱讀
    小米SU7<b class='flag-5'>重磅</b><b class='flag-5'>發(fā)布</b>,NGI為夢想之車保駕護(hù)航

    報(bào)名開啟!第二屆OpenHarmony開發(fā)者大會2024重磅來襲!

    OpenHarmony 開發(fā)者大會2024,為開發(fā)者、產(chǎn)業(yè)組織、生態(tài)伙伴和行業(yè)用戶搭建一個(gè)交流、分享和學(xué)習(xí)的平臺。大會以 OpenHarmony 4.1 Release版本根技術(shù)特性解讀為契機(jī),以“1場主論壇+6場技術(shù)
    發(fā)表于 05-14 15:23

    超充再次取得重大突破!欣旺達(dá)動力閃充電池3.0重磅發(fā)布!

    、長壽命動力電池產(chǎn)品驚艷亮相,更有鈉電、大圓柱、固態(tài)電池等前沿技術(shù)產(chǎn)品重磅展示,為汽車行業(yè)帶來全場景的動力電池解決方案。 值得矚目的是,4月25日,欣旺達(dá)動力電芯產(chǎn)品總經(jīng)理何軒博士在北京車展展臺現(xiàn)場隆重發(fā)布全新閃充電池3.
    的頭像 發(fā)表于 04-29 13:53 ?1290次閱讀

    小米SU7發(fā)布在即,全系標(biāo)配智能輔助駕駛功能

    近日,小米創(chuàng)始人雷軍通過其個(gè)人社交平臺宣布,備受期待的小米SU7將于3月28日正式發(fā)布。這一重磅消息迅速在汽車界引起廣泛關(guān)注。小米汽車官方微博同步宣布,新車上市即交付,交付即上量,展現(xiàn)出強(qiáng)大的市場信心。
    的頭像 發(fā)表于 03-27 11:41 ?811次閱讀

    宋仕強(qiáng)論道”系列講座的文章暨宋仕強(qiáng)先生研究華強(qiáng)北模式和華強(qiáng)北文化的系列文章,再次迎來更新!

    》由新華社新華瞭望網(wǎng)在主頁首發(fā),當(dāng)日點(diǎn)擊量就突破10萬次!之后,金航標(biāo)和薩科微宋仕強(qiáng)先生的這一重磅力作又引發(fā)一波波熱議狂潮,不僅被國內(nèi)外的多家知名權(quán)威媒體紛紛競相轉(zhuǎn)載,還在阿拉伯世界迅猛傳播!宋仕強(qiáng)先生
    發(fā)表于 03-26 10:36

    軟通動力&quot;梧桐?招聘&quot;入選中國首部大模型應(yīng)用權(quán)威案例集

    《2023大模型落地應(yīng)用案例集》(以下簡稱"《案例集》")重磅發(fā)布。軟通動力智能招聘系統(tǒng)"梧桐?招聘"作為垂類大模型代表,成功入選《案例集》并被授予"優(yōu)秀實(shí)踐案例"。這是軟通動力致力于促進(jìn)大模型創(chuàng)新發(fā)展、加速通用人工智能創(chuàng)新生態(tài)所獲得的又一
    的頭像 發(fā)表于 12-29 17:58 ?926次閱讀
    軟通動力&quot;梧桐?招聘&quot;入選中國首部大模型應(yīng)用權(quán)威案例集

    龍芯重磅發(fā)布新一代處理器,全力打造IT產(chǎn)業(yè)新生態(tài)

    11月28日,2023龍芯產(chǎn)品發(fā)布暨用戶大會在國家會議中心如約啟幕。大會以“到中流擊水”為主題,現(xiàn)場發(fā)布新一代通用處理器龍芯3A6000、打印機(jī)主控芯片龍芯2P0500重磅成果,并對外公布龍芯處理器
    的頭像 發(fā)表于 11-28 16:45 ?1658次閱讀
    龍芯<b class='flag-5'>重磅</b><b class='flag-5'>發(fā)布</b>新一代處理器,全力打造IT產(chǎn)業(yè)新生態(tài)

    簡單了解Java的新特性

    Java 8 到 Java 20,Java 已經(jīng)走過了漫長的道路,自 Java 8 以來,Java 生態(tài)系統(tǒng)發(fā)生了很多變化。最顯著的變化是
    的頭像 發(fā)表于 11-23 16:38 ?1051次閱讀
    簡單了解<b class='flag-5'>Java</b>的新<b class='flag-5'>特性</b>

    亮相世界互聯(lián)網(wǎng)大會!Coremail郵箱客戶端4.0重磅發(fā)布

    11月8日,2023年世界互聯(lián)網(wǎng)大會烏鎮(zhèn)峰會盛大開幕,同日,“互聯(lián)網(wǎng)之光”博覽會新產(chǎn)品新技術(shù)發(fā)布(網(wǎng)絡(luò)安全專場)活動在烏鎮(zhèn)互聯(lián)網(wǎng)國際會展中心B2館順利舉辦, Coremail亮相發(fā)布現(xiàn)場,重磅
    的頭像 發(fā)表于 11-12 17:32 ?380次閱讀
    亮相世界互聯(lián)網(wǎng)大會!Coremail郵箱客戶端4.0<b class='flag-5'>重磅</b><b class='flag-5'>發(fā)布</b>