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

          JDK15正式發(fā)布,新增功能預覽!

          共 3013字,需瀏覽 7分鐘

           ·

          2020-09-20 10:38




          JDK 15 在 2020 年 9 月 15 號正式發(fā)布了,這次發(fā)布的主要功能有:

          • JEP 339:EdDSA 數(shù)字簽名算法
          • JEP 360:密封類(預覽)
          • JEP 371:隱藏類
          • JEP 372:刪除 Nashorn JavaScript 引擎
          • JEP 373:重新實現(xiàn) Legacy DatagramSocket API
          • JEP 374:重新實現(xiàn) DatagramSocket API
          • JEP 375:實例模式匹配(第二次預覽)
          • JEP 377:ZGC:一個可擴展的低延遲垃圾收集器
          • JEP 378:文本塊
          • JEP 379:低暫停時間垃圾收集器
          • JEP 381:移除 Solaris 和 SPARC 端口
          • JEP 383:外部存儲器訪問 API(第二個內(nèi)置程序)
          • JEP 384:Records(第二次預覽)
          • JEP 385:不推薦的 RMI 激活去除

          JEP:JDK Enhancement Proposals,JDK 增強建議,也就是 JDK 的特性新增和改進提案。

          這些年發(fā)布的版本對應的 JEPs 數(shù)量如下圖所示:

          發(fā)布版本說明

          根據(jù)發(fā)布的規(guī)劃,這次發(fā)布的 JDK 15 將是一個短期的過度版,只會被 Oracle 支持(維護)6 個月,直到明年 3 月的 JDK 16 發(fā)布此版本將停止維護。而 Oracle 下一個長期支持版(LTS 版)會在明年的 9 月份候發(fā)布(Java 17),LTS 版每 3 年發(fā)布一個,上一次長期支持版是 18 年 9 月發(fā)布的 JDK 11。

          JDK 15 新功能說明

          JDK 15 為用戶提供了十四項主要的增強/更改,包括一個孵化器模塊,三個預覽功能,兩個不推薦使用的功能以及兩個刪除功能。

          1、EdDSA 數(shù)字簽名算法

          新加入 Edwards-Curve 數(shù)字簽名算法(EdDSA)實現(xiàn)加密簽名。在許多其它加密庫(如 OpenSSL 和 BoringSSL)中得到支持。與 JDK 中的現(xiàn)有簽名方案相比,EdDSA 具有更高的安全性和性能。這是一個新的功能。

          2、隱藏類

          此功能可幫助需要在運行時生成類的框架。框架生成類需要動態(tài)擴展其行為,但是又希望限制對這些類的訪問。隱藏類很有用,因為它們只能通過反射訪問,而不能從普通字節(jié)碼訪問。此外,隱藏類可以獨立于其他類加載,這可以減少框架的內(nèi)存占用。這是一個新的功能。

          3、重新實現(xiàn) DatagramSocket API

          重新實現(xiàn)舊版 DatagramSocket API,更簡單、更現(xiàn)代的實現(xiàn)來代替java.net.DatagramSocketjava.net.MulticastSocketAPI 的基礎(chǔ)實現(xiàn),提高了 JDK 的可維護性和穩(wěn)定性。

          4、ZGC 功能轉(zhuǎn)正

          ZGC 已由JEP 333集成到JDK 11 中,其目標是通過減少 GC 停頓時間來提高性能。借助 JEP 377,ZGC 從預覽功能轉(zhuǎn)變?yōu)樯a(chǎn)功能。

          5、文本塊功能轉(zhuǎn)正

          文本塊由JEP 355在 2019 年提出,文本塊是一種多行字符串文字,它避免了大多數(shù)轉(zhuǎn)義序列的需要,以一種可預測的方式自動設(shè)置字符串的格式,并在需要時使開發(fā)人員可以控制格式。借助 JEP 378,文本塊已成為 Java 語言的永久功能。

          6、Shenandoah 垃圾回收算法轉(zhuǎn)正

          Shenandoah 垃圾回收從實驗特性變?yōu)楫a(chǎn)品特性。這是一個從 JDK 12 引入的回收算法,該算法通過與正在運行的 Java 線程同時進行疏散工作來減少 GC 暫停時間。Shenandoah 的暫停時間與堆大小無關(guān),無論堆棧是 200 MB 還是 200 GB,都具有相同的一致暫停時間。

          7、密封類(預覽)

          通過密封的類和接口來增強 Java 編程語言,用于限制超類的使用,密封的類和接口限制其它可能繼承或?qū)崿F(xiàn)它們的其它類或接口。

          8、instanceof 自動匹配模式(預覽)

          舊寫法:

          //?先判斷類型
          if?(obj?instanceof?String)?{
          ????//?然后轉(zhuǎn)換
          ????String?s?=?(String)?obj;
          ????//?然后才能使用
          }

          新寫法:

          if?(obj?instanceof?String?s)?{
          ????//?如果類型匹配?直接使用
          }?else?{
          ????//?如果類型不匹配則不能直接使用
          }

          這是第二次預覽該功能,我們已經(jīng)在 Java 14 中首次預覽過該特性。

          9、Records Class(預覽)

          Records Class 也是第二次出現(xiàn)的預覽功能,它在 JDK 14 中也出現(xiàn)過一次了,使用 Record 可以更方便的創(chuàng)建一個常量類,使用的前后代碼對比如下。

          寫法

          class?Point?{
          ????private?final?int?x;
          ????private?final?int?y;

          ????Point(int?x,?int?y)?{?
          ????????this.x?=?x;
          ????????this.y?=?y;
          ????}

          ????int?x()?{?return?x;?}
          ????int?y()?{?return?y;?}

          ????public?boolean?equals(Object?o)?{?
          ????????if?(!(o?instanceof?Point))?return?false;
          ????????Point?other?=?(Point)?o;
          ????????return?other.x?==?x?&&?other.y?=?y;
          ????}

          ????public?int?hashCode()?{
          ????????return?Objects.hash(x,?y);
          ????}

          ????public?String?toString()?{?
          ????????return?String.format("Point[x=%d,?y=%d]",?x,?y);
          ????}
          }

          寫法

          record?Point(int?x,?int?y)?{?}

          也就是說在使用了 record 之后,就可以用一行代碼編寫出一個常量類,并且這個常量類還包含了構(gòu)造方法、toString()、equals() 和 hashCode() 等方法。

          10、外部存儲器訪問 API(預覽)

          目的是引入一個 API,以允許 Java 程序安全有效地訪問 Java 堆之外的外部內(nèi)存。這同樣是 Java 14 的一個預覽特性。

          11、其它功能

          其它功能里面還有一些棄用和不建議使用的功能,比如移除了 Nashorn JavaScript 引擎,同時也移除了刪除 Solaris 和 SPARC 端口,并標記了一些棄用功能。

          參考 & 鳴謝

          碼農(nóng)小胖哥:https://mp.weixin.qq.com/s/rhfSLW0wfe73xgbRVvX46Q

          官方日志:https://openjdk.java.net/projects/jdk/15/


          ? ? ? ?
          ???
          秒懂JVM的三大參數(shù)類型,就靠這十個小實驗了
          你見過最爛的 Java 代碼長什么樣子?
          10 張圖聊聊線程的生命周期和常用 APIs

          覺得不錯,點個在看~

          瀏覽 76
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  操逼阁| 拍黄色毛片电影视频 | 超碰在线97啪啪啪 | 日韩高清国产精品 | 中国十大黄色操逼网站 |