91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Java15的新特性有哪些

發布時間:2021-10-28 14:01:04 來源:億速云 閱讀:145 作者:iii 欄目:編程語言

本篇內容主要講解“Java15的新特性有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java15的新特性有哪些”吧!

新特性

JDK 15 新特性一覽表:

IDJEPFeature
1339Edwards-Curve Digital Signature Algorithm (EdDSA)
2360Sealed Classes (Preview)
3371Hidden Classes
4372Remove the Nashorn JavaScript Engine
5373Reimplement the Legacy DatagramSocket API
6374Disable and Deprecate Biased Locking
7375Pattern Matching for instanceof (Second Preview)
8377ZGC: A Scalable Low-Latency Garbage Collector
9378Text Blocks
10379Shenandoah: A Low-Pause-Time Garbage Collector
11381Remove the Solaris and SPARC Ports
12383Foreign-Memory Access API (Second Incubator)
13384Records (Second Preview)
14385Deprecate RMI Activation for Removal

339:Edwards-Curve Digital Signature Algorithm (EdDSA)

Edwards-Curve 數據簽名算法(EdDSA),一種根據 RFC 8032 規范所描述的 Edwards-Curve 數字簽名算法(EdDSA)實現加密簽名,實現了一種 RFC 8032 標準化方案,但它不能代替 ECDSA。

EdDSA 是一種現代的橢圓曲線簽名方案,與 JDK 中現有的簽名方案相比,它有很多優勢。

360:Sealed Classes (Preview)

封閉類(預覽特性),可以是封閉類和或者封閉接口,用來增強 Java 編程語言,防止其他類或接口擴展或實現它們。

這個牛逼啊,有了這個特性,意味著以后不是你想繼承就繼承,想實現就實現了,你得經過允許才行。

來看這個示例:

public abstract sealed class Student      permits ZhangSan, LiSi, ZhaoLiu {      ...         }

類 Student 被 sealed 修飾,說明它是一個封閉類,并且只允許指定的 3 個子類繼承。

371:Hidden Classes

隱藏類,這一看也是個很有意思的特性。

隱藏類是為框架(frameworks)所設計的,隱藏類不能直接被其他類的字節碼使用,只能在運行時生成類并通過反射間接使用它們。

372:Remove the Nashorn JavaScript Engine

移除了 Nashorn JavaScript 腳本引擎、APIs,以及 jjs 工具。這些早在 JDK 11 中就已經被標記為 deprecated 了,JDK 15 被移除就很正常了。

Nashorn 是 JDK 1.8 引入的一個 JavaScript 腳本引擎,用來取代 Rhino 腳本引擎。Nashorn 是 ECMAScript-262 5.1 的完整實現,增強了 Java 和 JavaScript 的兼容性,并且大大提升了性能。

為什么要移除?

官方的描述是,隨著 ECMAScript 腳本語言的結構、API 的改編速度越來越快,維護 Nashorn 太有挑戰性了,所以……。

373:Reimplement the Legacy DatagramSocket API

重新實現了老的 DatagramSocket API 接口,更改了 java.net.DatagramSocket 和 java.net.MulticastSocket 為更加簡單、現代化的底層實現,更易于維護和調試。

新的底層實現將很容易使用虛擬線程,目前正在 Loom 項目中進行探索。這也是 JEP 353 的后續更新版本,JEP 353 已經重新實現了 Socket API。

374:Disable and Deprecate Biased Locking

準備禁用和廢除偏向鎖,在 JDK 15 中,默認情況下禁用偏向鎖,并棄用所有相關的命令行選項。

后面再確定是否需要繼續支持偏向鎖,國為維護這種鎖同步優化的成本太高了。

375:Pattern Matching for instanceof (Second Preview)

模式匹配(第二次預覽),第一次預覽是 JDK 14 中提出來的,點擊這里查看棧長之前寫的詳細教程。

Java 14 之前:

if (object instanceof Kid) {      Kid kid = (Kid) object;      // ...  } else if (object instanceof Kiddle) {      Kid kid = (Kid) object;      // ...  }

Java 14+:

if (object instanceof Kid kid) {      // ...  } else if (object instanceof Kiddle kiddle) {      // ...  }

Java 15 并沒有對此特性進行調整,繼續預覽特性,只是為了收集更多的用戶反饋,可能還不成熟吧。

377:ZGC: A Scalable Low-Latency Garbage Collector

ZGC:一個可伸縮、低延遲的垃圾回收器。

ZGC 最早是在 JDK 11 中集成進來的,JDK 15 只是將 ZGC 垃圾收集器從預覽特性變更為正式特性而已,沒錯,轉正了。

這個 JEP 不會更改默認的 GC,默認仍然是 G1。

378:Text Blocks

文本塊,是一個多行字符串,它可以避免使用大多數轉義符號,自動以可預測的方式格式化字符串,并讓開發人員在需要時可以控制格式。

文本塊最早準備在 JDK 12 添加的,但最終撤消了,然后在 JDK 13 中作為預覽特性進行了添加,然后又在 JDK 14 中再次預覽,在 JDK 15 中,文本塊終于轉正,暫不再做進一步的更改。

來看下這個示例你就懂了:

Java 13 之前:

String html = "<html>\n" +                "    <body>\n" +                "        <p>Hi, Java技術棧</p>\n" +                "        <p>歡迎關注,分享更多干貨</p>\n" +                "    </body>\n" +                "</html>\n";

Java 13+:

String html = """                <html>                    <body>                        <p>Hi, Java技術棧</p>                        <p>歡迎關注,分享更多干貨</p>                    </body>                </html>                """;

去掉那些無用的換行和拼接,是不是太爽了。。這個詳細教程計劃再出一篇,關注公眾號Java技術棧第一時間推送。

379:Shenandoah: A Low-Pause-Time Garbage Collector

Shenandoah:一個低停頓時間的垃圾回收器。

Shenandoah 最早是在 JDK 12 中集成進來的,JDK 15 只是將 Shenandoah 垃圾收集器從預覽特性變更為正式特性而已,沒錯,又是轉正了。

381:Remove the Solaris and SPARC Ports

移除了 Solaris 和 SPARC 端口。

移除了 Solaris/SPARC、Solaris/x64 和 Linux/SPARC 端口的源代碼及構建支持。這些端口在 JDK 14 中就已經被標記為 deprecated 了,JDK 15 被移除也不奇怪。

383:Foreign-Memory Access API (Second Incubator)

外存訪問 API(二次孵化),可以允許 Java 應用程序安全有效地訪問 Java 堆之外的外部內存。

這個最早在 JDK 14 中成為孵化特性,JDK 15 繼續二次孵化并對其 API 有了一些更新。

384:Records (Second Preview)

Records 最早在 JDK 14 中成為預覽特性,JDK 15 繼續二次預覽。

Records 在某些場合可以干掉 Lombok 的存在,能自動生成了類構造器、toString()、hashCode()、equals(),以及類似 getter 的變量訪問方法。

使用方式:

public record Student(String name, int id, int age) {}

385:Deprecate RMI Activation for Removal

廢除 RMI 激活,以便在將來進行刪除。

需要說明的是,RMI 激活是 RMI 中一個過時的組件,自 Java 8 以來一直是可選的。

到此,相信大家對“Java15的新特性有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆子县| 延长县| 伽师县| 连云港市| 达州市| 湘潭县| 肥东县| 庆安县| 叶城县| 长沙市| 辽中县| 郧西县| 沙湾县| 沾化县| 玉溪市| 伊宁县| 富裕县| 长乐市| 呈贡县| 勐海县| 湘西| 宁武县| 南昌县| 弋阳县| 古田县| 鸡西市| 锡林浩特市| 云南省| 南城县| 盘山县| 合阳县| 贺州市| 方正县| 井研县| 宝应县| 伽师县| 高淳县| 博乐市| 辽源市| 清新县| 兰州市|