<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>

          Java 17新特性,快到起飛?驚呆了!

          共 6411字,需瀏覽 13分鐘

           ·

          2022-06-24 16:13

          文末推薦一本好書


          都說Java 8 是YYDS,那你注意到 Java 17 也是長期支持版本嗎?目前按計劃 JDK 19 將于今年 9 月發(fā)布

          SpringBoot 正式支持Java 17,Kafka3.0棄用Java8

          Spring Boot 2.5.5是Spring Boot 第一個支持Java 17的版本。現(xiàn)在你已經(jīng)可以從Spring Initializr初始化Spring Boot 支持 java17 版本了。

          Java 17的14 個 新特性,分別是:

          • 306:恢復(fù)始終嚴格的浮點語義
          • 356:增強型偽隨機數(shù)發(fā)生器
          • 382:新的 macOS 渲染管道
          • 391:macOS/AArch64 端口
          • 398:棄用即將刪除的 Applet API
          • 403:強封裝JDK的內(nèi)部API
          • 406:Switch模式匹配(預(yù)覽)
          • 407:刪除 RMI 激活
          • 409:密封類
          • 410:刪除實驗性 AOT 和 JIT 編譯器
          • 411:棄用即將刪除安全管理器
          • 412:外部函數(shù)和內(nèi)存 API(孵化器)
          • 414:Vector API(第二次進行特性孵化)
          • 415:特定于上下文的反序列化過濾器

          在這14個功能中,哪一個對你最實用。

          3年后的首個 LTS版本

          據(jù)Oracle Java SE支持路線圖顯示,Java 17 是自Java 11以來的首個長期支持版本。Oracle 還提議將 JDK LTS 發(fā)布的節(jié)奏從每三年一次改為每兩年一次,并且每個LTS 版本的服務(wù)時間至少8年以上。Java 版本通常是6個月一更新,時間分別在3月和9月,而這些版本的支持時間基本在半年左右。



          Java各個版本的生命周期


          據(jù)Oralce官博透露,雖然6個月版本的使用人數(shù)在增長,但大部分組織及企業(yè)更傾向于把LTS版本用在生產(chǎn)環(huán)境中,從而得到更加穩(wěn)定可靠的服務(wù)。這一點從Snyk發(fā)布的2021 Java 社區(qū)報告中也可以得到證實,雖然有 61.5% 的人在生產(chǎn)中使用 Java 11,但仍有一半的 Java 11 用戶(目前使用最多的版本)在他們的生產(chǎn)堆棧中使用 Java 8。


          除了上面提到是14個重大更新和更快的LTS服務(wù)節(jié)奏外,Java 17還有哪些亮點呢?

          Oracle 推出 Free Java License 

          自Java 被 Oralce 收購以后,付費 JDK 就一直被人詬病,現(xiàn)在好了,Oracle 宣布推出JDK免費服務(wù)。什么意思呢?讓我們來看一下官方解釋:

          • Oracle正在為行業(yè)提供免費的,領(lǐng)先的 Oralce JDK,包括所有季度安全更新,并包含商業(yè)和生產(chǎn)用途
          • 新許可是“Oracle 免費條款和條件”(NFTC) 許可。此 Oracle JDK 許可證允許所有用戶免費使用,甚至可以用于商業(yè)和生產(chǎn)用途。只要不收費,再分發(fā)是允許的
          • 開發(fā)人員和組織現(xiàn)在無需點擊即可輕松下載、使用、共享和重新分發(fā) Oracle JDK。
          • Oracle 將從Oracle JDK 17 開始提供這些免費版本和更新,并在下一個 LTS 版本之后繼續(xù)提供整整一年。以前的版本不受此更改的影響。
          • Oracle 將繼續(xù)按照自 Java 9 以來的相同版本和時間表提供GPL下的Oracle OpenJDK 版本。

          總結(jié)成一句話,“免費”也并不意味著開發(fā)者可以隨心所欲,因為 Oracle 的 NFTC 是禁止付費重新分發(fā)其 Java 軟件。

          而在Java 17 正式發(fā)布之前,Java 開發(fā)框架 Spring 率先在官博宣布,Spring Framework 6 和Spring Boot 3 計劃在 2022 年第四季度實現(xiàn)總體可用性的高端基線:

          • Java 17+(來自 Spring Framework 5.3.x 線中的 Java 8-17)
          • Jakarta EE 9+(來自Spring框架5.3.x 線中的 Java EE 7-8)

          通過實際行動來支持 Java 17,間接呼吁開發(fā)者,是時候使用 Java 17了。

          要不要升級呢?Java 17 到底有多快?

          看到如此誠意滿滿的更新,開發(fā)者到底要不要升級呢?盡管只需切換JDK即可體驗Java 17。對此,OptaPlanner網(wǎng)站做了一項基準測試:Java到底有多快?通過比較 JDK 17、JDK 16 和 JDK 11 來告訴你答案。

          基準方法

          • 硬件:一個穩(wěn)定的機器不運行任何其他的計算要求苛刻的流程,配置:Intel? Xeon? Silver 4116 @ 2.1 GHz (12 cores total / 24 threads)和128 GiBRAM內(nèi)存,運行RHEL 8 x86_64。

          • JDK版本:

          • JDK 11

          openjdk 11.0.12 2021-07-20
          OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
          OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)

          • JDK 16
          openjdk 16.0.2 2021-07-20
          OpenJDK Runtime Environment (build 16.0.2+7-67)
          OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
          • JDK 17
          openjdk 17 2021-09-14
          OpenJDK Runtime Environment (build 17+35-2724)
          OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)

          • JVM 選項:-Xmx3840M并明確指定垃圾收集器:

          • -XX:+UseG1GC 對于 G1GC,低延遲垃圾收集器(所有三個 JDK 中的默認值)。

          • -XX:+UseParallelGC 對于 ParallelGC,高吞吐量垃圾收集器。

          • Main class:org.optaplanner.examples.app.GeneralOptaPlannerBenchmarkApp 來自 optaplanner-examplesOptaPlanner 中的模塊8.10.0.Final。

          • 每次運行都使用 OptaPlanner 解決 11 個規(guī)劃問題,例如 員工排班、 學(xué)校時間表和云優(yōu)化。每個規(guī)劃問題運行 5 分鐘。日志記錄設(shè)置為INFO。基準測試以 30 秒的 JVM 預(yù)熱(warm up)開始,隨后丟棄。

          • 解決規(guī)劃問題不涉及IO(除了在啟動期間加載輸入的幾毫秒)。單個CPU完全飽和。它不斷地創(chuàng)建許多短期存在的對象,然后 GC 將它們收集起來。

          • 基準衡量每秒計算的分數(shù)數(shù)量,越高越好。為測試計劃規(guī)劃的解決方案計算分數(shù)并非易事:它涉及許多計算,包括檢查每個實體與每個其他實體之間的沖突。

          • 運行次數(shù):每個 JDK 和每個垃圾收集器組合按順序運行 3 次。下面的結(jié)果是這 3 次運行的平均值。

          測試結(jié)果

          Java 11 (LTS) 和 Java 16 與 Java 17 (LTS)

           

          表1. 在不同 JDK 上使用 G1GC 的每秒計算得分




          表2. 在不同 JDK 上使用 ParallelGC 的每秒計算得分



          備注:

          查看 3 次單獨運行的原始數(shù)據(jù)(此處未顯示),機器重新分配數(shù)(B1 和 B10)在同一 JDK 和 GC 上的運行之間波動很大,通常超過10%,其他數(shù)字不會受到這種不可靠性的影響。

          可以以說忽略 Machine Reassignment numbers 更好。但是為了避免挑選數(shù)據(jù)的問題,這些結(jié)果和平均值確實把它們包括進來了。

          Java 17 上的 G1GC 與 ParallelGC

           

          表3.JDK 17 下不同 GC 每秒的計算得分

           

          基準測試總結(jié)

          平均而言,以 OptaPlanner 為例的基準測試結(jié)果表明:

          • 對于 G1GC(默認),Java 17 比 Java 11 快 8.66%,比 Java 16 快 2.41%。
          • 對于 ParallelGC,Java 17 比 Java 11 快 6.54%,比 Java 16 快 0.37%。
          • Parallel GC 比 G1 GC 快 16.39%。

          結(jié)果并無太大的驚喜表現(xiàn):最新的 JDK 更快,高吞吐量垃圾收集器比低延遲垃圾收集器更快。

          多說一句

          在基于JDK 15 的基準測試中,Java 15 比 Java 11 快 11.24%。現(xiàn)在,Java 17 相對于 Java 11 的增益更少。這是否意味著 Java 17 比 Java 15 慢?

          答案是否定的,Java 17 依然比 Java 15 快,因為之前的那些基準測試是在不同的代碼庫上運行的(OptaPlanner 7.44 而不是 8.10)。不要拿橙子與蘋果作比較,不具有可比性。

          結(jié)論

          總而言之,JDK17 的性能表現(xiàn)還是非常值得升級的,至少于OptaPlanner Demo 而言。

          此外,這些用例最快的垃圾收集器仍然是ParallelGC, 而不是G1GC(默認)。

          作為3年后首次發(fā)布的LTS版本的Java 17給你帶來了哪些驚喜?面對Go、Kotlion等JVM的強勢發(fā)展,你覺得Java還能保持霸主地位嗎?


          好書推薦


          如何快速掌握全部 Java17 新特性


          Java 誕生 27 年來,這本享譽全球的 Java 經(jīng)典著作《Core Java》一路伴隨著 Java 的成長,得到了百萬 Java 開發(fā)者的青睞,幾乎出現(xiàn)在每個“學(xué)Java要看什么書”類似的書單里,影響了幾代技術(shù)人。


          27年間,每當 Java 有新的 LTR 版本發(fā)布,這本書都會隨之更新,這次也不例外。現(xiàn)在,針對 Java 17 新特性的《Java核心技術(shù)》第 12 版*中文版(卷1)終于上市了!


          《Java核心技術(shù)》第 12 版涵蓋了 Java 17 的最新特性,相應(yīng)調(diào)整了部分內(nèi)容結(jié)構(gòu),同時延續(xù)之前版本的優(yōu)良傳統(tǒng),利用清晰明了的示例加以解釋,并提供了全部示例代碼,以便讀者學(xué)習(xí)和靈活應(yīng)用。它將續(xù)寫從前的輝煌,使開發(fā)者能及時跟上 Java 前進的步伐。



          我們尋找了50位曾經(jīng)看著《Java核心技術(shù)》這本書成長起來的KOL推薦本書!大家的寄語全部收錄在第12版新書中!



          這本書究竟是怎樣的一本書,得到眾多開發(fā)者的一致推薦呢?


          ●《Java核心技術(shù)》并非市面那些零基礎(chǔ)速成的書,很好地避免了開發(fā)基礎(chǔ)書容易犯的“大而泛”的問題,盡管內(nèi)容繁多,但對知識點的介紹并非泛泛而過。通過周密組織,從Java繁雜的內(nèi)容中整理出一條清晰的主線,構(gòu)成一個完整的知識體系。


          ●整本書不僅讓你深入了解設(shè)計和實現(xiàn)Java應(yīng)用涉及的所有基礎(chǔ)知識和Java特性,還會幫助你掌握開發(fā)Java程序所需的全部基本技能。


          作者凱.霍斯特曼是Java技術(shù)堅定的倡導(dǎo)者,至今仍常年在國際上的各類計算機峰會上進行技術(shù)分享。在位于硅谷中心的圣何塞州立大學(xué)教學(xué)30余年,為硅谷的頂尖科技公司培養(yǎng)了大量計算機專業(yè)人才。非常熟知大廠要什么!所以他的書也是非常有針對性。


          為幫助大家更輕松地學(xué)習(xí)Java,作者還親自錄制了配套視頻講解課程,視頻配有中文配音+中文字幕,與紙書涵蓋內(nèi)容基本一致,適配Java SE8以后的版本。紙書+視頻搭配學(xué)習(xí),學(xué)習(xí)Java更輕松。(B站搜索“Java核心技術(shù)站”直達)。

          ......


          相信在學(xué)習(xí)Java的道路上有了《Java核心技術(shù)》這本書的輔助,你一定可以做到事半功倍。


          臨近618,在各大平臺本書均有大力度的折扣,還不快閉眼入手!


          特別預(yù)告
          6月11日(本周六),《Java核心技術(shù)》的作者Cay S. Horstmann先生將帶來他的最新研究成果分享:從Java的新特性看Java的未來,快來掃描下圖二維碼報名直播吧。


          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  欧美一区 亚洲一区 | 一级片视频在线观看大全 | 色婷婷色婷婷 | 久久精品视频在线观看 | 淫色婷婷|