本篇內(nèi)容主要講解“Java15的新特性有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java15的新特性有哪些”吧!
創(chuàng)新互聯(lián)建站服務(wù)緊隨時(shí)代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過(guò)十年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專(zhuān)業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對(duì)網(wǎng)站進(jìn)行成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶網(wǎng)站對(duì)外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。
新特性
JDK 15 新特性一覽表:
ID | JEP | Feature |
---|---|---|
1 | 339 | Edwards-Curve Digital Signature Algorithm (EdDSA) |
2 | 360 | Sealed Classes (Preview) |
3 | 371 | Hidden Classes |
4 | 372 | Remove the Nashorn JavaScript Engine |
5 | 373 | Reimplement the Legacy DatagramSocket API |
6 | 374 | Disable and Deprecate Biased Locking |
7 | 375 | Pattern Matching for instanceof (Second Preview) |
8 | 377 | ZGC: A Scalable Low-Latency Garbage Collector |
9 | 378 | Text Blocks |
10 | 379 | Shenandoah: A Low-Pause-Time Garbage Collector |
11 | 381 | Remove the Solaris and SPARC Ports |
12 | 383 | Foreign-Memory Access API (Second Incubator) |
13 | 384 | Records (Second Preview) |
14 | 385 | Deprecate RMI Activation for Removal |
339:Edwards-Curve Digital Signature Algorithm (EdDSA)
Edwards-Curve 數(shù)據(jù)簽名算法(EdDSA),一種根據(jù) RFC 8032 規(guī)范所描述的 Edwards-Curve 數(shù)字簽名算法(EdDSA)實(shí)現(xiàn)加密簽名,實(shí)現(xiàn)了一種 RFC 8032 標(biāo)準(zhǔn)化方案,但它不能代替 ECDSA。
EdDSA 是一種現(xiàn)代的橢圓曲線簽名方案,與 JDK 中現(xiàn)有的簽名方案相比,它有很多優(yōu)勢(shì)。
360:Sealed Classes (Preview)
封閉類(lèi)(預(yù)覽特性),可以是封閉類(lèi)和或者封閉接口,用來(lái)增強(qiáng) Java 編程語(yǔ)言,防止其他類(lèi)或接口擴(kuò)展或?qū)崿F(xiàn)它們。
這個(gè)牛逼啊,有了這個(gè)特性,意味著以后不是你想繼承就繼承,想實(shí)現(xiàn)就實(shí)現(xiàn)了,你得經(jīng)過(guò)允許才行。
來(lái)看這個(gè)示例:
public abstract sealed class Student permits ZhangSan, LiSi, ZhaoLiu { ... }
類(lèi) Student 被 sealed 修飾,說(shuō)明它是一個(gè)封閉類(lèi),并且只允許指定的 3 個(gè)子類(lèi)繼承。
371:Hidden Classes
隱藏類(lèi),這一看也是個(gè)很有意思的特性。
隱藏類(lèi)是為框架(frameworks)所設(shè)計(jì)的,隱藏類(lèi)不能直接被其他類(lèi)的字節(jié)碼使用,只能在運(yùn)行時(shí)生成類(lèi)并通過(guò)反射間接使用它們。
372:Remove the Nashorn JavaScript Engine
移除了 Nashorn JavaScript 腳本引擎、APIs,以及 jjs 工具。這些早在 JDK 11 中就已經(jīng)被標(biāo)記為 deprecated 了,JDK 15 被移除就很正常了。
Nashorn 是 JDK 1.8 引入的一個(gè) JavaScript 腳本引擎,用來(lái)取代 Rhino 腳本引擎。Nashorn 是 ECMAScript-262 5.1 的完整實(shí)現(xiàn),增強(qiáng)了 Java 和 JavaScript 的兼容性,并且大大提升了性能。
為什么要移除?
官方的描述是,隨著 ECMAScript 腳本語(yǔ)言的結(jié)構(gòu)、API 的改編速度越來(lái)越快,維護(hù) Nashorn 太有挑戰(zhàn)性了,所以……。
373:Reimplement the Legacy DatagramSocket API
重新實(shí)現(xiàn)了老的 DatagramSocket API 接口,更改了 java.net.DatagramSocket 和 java.net.MulticastSocket 為更加簡(jiǎn)單、現(xiàn)代化的底層實(shí)現(xiàn),更易于維護(hù)和調(diào)試。
新的底層實(shí)現(xiàn)將很容易使用虛擬線程,目前正在 Loom 項(xiàng)目中進(jìn)行探索。這也是 JEP 353 的后續(xù)更新版本,JEP 353 已經(jīng)重新實(shí)現(xiàn)了 Socket API。
374:Disable and Deprecate Biased Locking
準(zhǔn)備禁用和廢除偏向鎖,在 JDK 15 中,默認(rèn)情況下禁用偏向鎖,并棄用所有相關(guān)的命令行選項(xiàng)。
后面再確定是否需要繼續(xù)支持偏向鎖,國(guó)為維護(hù)這種鎖同步優(yōu)化的成本太高了。
375:Pattern Matching for instanceof (Second Preview)
模式匹配(第二次預(yù)覽),第一次預(yù)覽是 JDK 14 中提出來(lái)的,點(diǎn)擊這里查看棧長(zhǎng)之前寫(xiě)的詳細(xì)教程。
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 并沒(méi)有對(duì)此特性進(jìn)行調(diào)整,繼續(xù)預(yù)覽特性,只是為了收集更多的用戶反饋,可能還不成熟吧。
377:ZGC: A Scalable Low-Latency Garbage Collector
ZGC:一個(gè)可伸縮、低延遲的垃圾回收器。
ZGC 最早是在 JDK 11 中集成進(jìn)來(lái)的,JDK 15 只是將 ZGC 垃圾收集器從預(yù)覽特性變更為正式特性而已,沒(méi)錯(cuò),轉(zhuǎn)正了。
這個(gè) JEP 不會(huì)更改默認(rèn)的 GC,默認(rèn)仍然是 G1。
378:Text Blocks
文本塊,是一個(gè)多行字符串,它可以避免使用大多數(shù)轉(zhuǎn)義符號(hào),自動(dòng)以可預(yù)測(cè)的方式格式化字符串,并讓開(kāi)發(fā)人員在需要時(shí)可以控制格式。
文本塊最早準(zhǔn)備在 JDK 12 添加的,但最終撤消了,然后在 JDK 13 中作為預(yù)覽特性進(jìn)行了添加,然后又在 JDK 14 中再次預(yù)覽,在 JDK 15 中,文本塊終于轉(zhuǎn)正,暫不再做進(jìn)一步的更改。
來(lái)看下這個(gè)示例你就懂了:
Java 13 之前:
String html = "<html>\n" + " <body>\n" + " <p>Hi, Java技術(shù)棧</p>\n" + " <p>歡迎關(guān)注,分享更多干貨</p>\n" + " </body>\n" + "</html>\n";
Java 13+:
String html = """ <html> <body> <p>Hi, Java技術(shù)棧</p> <p>歡迎關(guān)注,分享更多干貨</p> </body> </html> """;
去掉那些無(wú)用的換行和拼接,是不是太爽了。。這個(gè)詳細(xì)教程計(jì)劃再出一篇,關(guān)注公眾號(hào)Java技術(shù)棧第一時(shí)間推送。
379:Shenandoah: A Low-Pause-Time Garbage Collector
Shenandoah:一個(gè)低停頓時(shí)間的垃圾回收器。
Shenandoah 最早是在 JDK 12 中集成進(jìn)來(lái)的,JDK 15 只是將 Shenandoah 垃圾收集器從預(yù)覽特性變更為正式特性而已,沒(méi)錯(cuò),又是轉(zhuǎn)正了。
381:Remove the Solaris and SPARC Ports
移除了 Solaris 和 SPARC 端口。
移除了 Solaris/SPARC、Solaris/x64 和 Linux/SPARC 端口的源代碼及構(gòu)建支持。這些端口在 JDK 14 中就已經(jīng)被標(biāo)記為 deprecated 了,JDK 15 被移除也不奇怪。
383:Foreign-Memory Access API (Second Incubator)
外存訪問(wèn) API(二次孵化),可以允許 Java 應(yīng)用程序安全有效地訪問(wèn) Java 堆之外的外部?jī)?nèi)存。
這個(gè)最早在 JDK 14 中成為孵化特性,JDK 15 繼續(xù)二次孵化并對(duì)其 API 有了一些更新。
384:Records (Second Preview)
Records 最早在 JDK 14 中成為預(yù)覽特性,JDK 15 繼續(xù)二次預(yù)覽。
Records 在某些場(chǎng)合可以干掉 Lombok 的存在,能自動(dòng)生成了類(lèi)構(gòu)造器、toString()、hashCode()、equals(),以及類(lèi)似 getter 的變量訪問(wèn)方法。
使用方式:
public record Student(String name, int id, int age) {}
385:Deprecate RMI Activation for Removal
廢除 RMI 激活,以便在將來(lái)進(jìn)行刪除。
需要說(shuō)明的是,RMI 激活是 RMI 中一個(gè)過(guò)時(shí)的組件,自 Java 8 以來(lái)一直是可選的。
到此,相信大家對(duì)“Java15的新特性有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
名稱(chēng)欄目:Java15的新特性有哪些
本文網(wǎng)址:http://aaarwkj.com/article6/iighig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、App開(kāi)發(fā)、做網(wǎng)站、網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)