本篇內(nèi)容介紹了“Java15有哪些新特性”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元余姚做網(wǎng)站,已為上家服務(wù),為余姚各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
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 |
JDK 15 一次發(fā)布了 14 個新特性,下面棧長帶大家來解讀下這些新特性!
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)勢。
封閉類(預(yù)覽特性),可以是封閉類和或者封閉接口,用來增強(qiáng) Java 編程語言,防止其他類或接口擴(kuò)展或?qū)崿F(xiàn)它們。
這個牛逼啊,有了這個特性,意味著以后不是你想繼承就繼承,想實(shí)現(xiàn)就實(shí)現(xiàn)了,你得經(jīng)過允許才行。
來看這個示例:
public abstract sealed class Student permits ZhangSan, LiSi, ZhaoLiu { ... }
類 Student 被 sealed
修飾,說明它是一個封閉類,并且只允許指定的 3 個子類繼承。
隱藏類,這一看也是個很有意思的特性。
隱藏類是為框架(frameworks)所設(shè)計的,隱藏類不能直接被其他類的字節(jié)碼使用,只能在運(yùn)行時生成類并通過反射間接使用它們。
移除了 Nashorn
JavaScript 腳本引擎、APIs,以及 jjs
工具。這些早在 JDK 11 中就已經(jīng)被標(biāo)記為 deprecated
了,JDK 15 被移除就很正常了。
Nashorn 是 JDK 1.8 引入的一個 JavaScript 腳本引擎,用來取代 Rhino 腳本引擎。Nashorn 是
ECMAScript-262 5.1
的完整實(shí)現(xiàn),增強(qiáng)了 Java 和 JavaScript 的兼容性,并且大大提升了性能。
為什么要移除?
官方的描述是,隨著 ECMAScript
腳本語言的結(jié)構(gòu)、API 的改編速度越來越快,維護(hù) Nashorn
太有挑戰(zhàn)性了,所以……。
重新實(shí)現(xiàn)了老的 DatagramSocket
API 接口,更改了 java.net.DatagramSocket
和 java.net.MulticastSocket
為更加簡單、現(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。
準(zhǔn)備禁用和廢除偏向鎖,在 JDK 15 中,默認(rèn)情況下禁用偏向鎖,并棄用所有相關(guān)的命令行選項(xiàng)。
后面再確定是否需要繼續(xù)支持偏向鎖,國為維護(hù)這種鎖同步優(yōu)化的成本太高了。
模式匹配(第二次預(yù)覽),第一次預(yù)覽是 JDK 14 中提出來的,點(diǎn)擊這里查看棧長之前寫的詳細(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 并沒有對此特性進(jìn)行調(diào)整,繼續(xù)預(yù)覽特性,只是為了收集更多的用戶反饋,可能還不成熟吧。
ZGC:一個可伸縮、低延遲的垃圾回收器。
ZGC
最早是在 JDK 11 中集成進(jìn)來的,JDK 15 只是將 ZGC
垃圾收集器從預(yù)覽特性變更為正式特性而已,沒錯,轉(zhuǎn)正了。
這個 JEP
不會更改默認(rèn)的 GC,默認(rèn)仍然是 G1
。
文本塊,是一個多行字符串,它可以避免使用大多數(shù)轉(zhuǎn)義符號,自動以可預(yù)測的方式格式化字符串,并讓開發(fā)人員在需要時可以控制格式。
文本塊最早準(zhǔn)備在 JDK 12 添加的,但最終撤消了,然后在 JDK 13 中作為預(yù)覽特性進(jìn)行了添加,然后又在 JDK 14 中再次預(yù)覽,在 JDK 15 中,文本塊終于轉(zhuǎn)正,暫不再做進(jìn)一步的更改。
來看下這個示例你就懂了:
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> """;
去掉那些無用的換行和拼接,是不是太爽了。。這個詳細(xì)教程計劃再出一篇,關(guān)注公眾號Java技術(shù)棧第一時間推送。
Shenandoah:一個低停頓時間的垃圾回收器。
Shenandoah
最早是在 JDK 12 中集成進(jìn)來的,JDK 15 只是將 Shenandoah
垃圾收集器從預(yù)覽特性變更為正式特性而已,沒錯,又是轉(zhuǎn)正了。
移除了 Solaris
和 SPARC
端口。
移除了 Solaris/SPARC
、Solaris/x64
和 Linux/SPARC
端口的源代碼及構(gòu)建支持。這些端口在 JDK 14 中就已經(jīng)被標(biāo)記為 deprecated
了,JDK 15 被移除也不奇怪。
外存訪問 API(二次孵化),可以允許 Java 應(yīng)用程序安全有效地訪問 Java 堆之外的外部內(nèi)存。
這個最早在 JDK 14 中成為孵化特性,JDK 15 繼續(xù)二次孵化并對其 API 有了一些更新。
Records 最早在 JDK 14 中成為預(yù)覽特性,JDK 15 繼續(xù)二次預(yù)覽。
Records 在某些場合可以干掉 Lombok
的存在,能自動生成了類構(gòu)造器、toString()、hashCode()、equals(),以及類似 getter 的變量訪問方法。
使用方式:
public record Student(String name, int id, int age) {}
實(shí)際生成:
看完是不是有點(diǎn) Lombok 的感覺?具體可以點(diǎn)擊這里查看棧長之前寫的詳細(xì)教程。
廢除 RMI 激活,以便在將來進(jìn)行刪除。
需要說明的是,RMI 激活是 RMI 中一個過時的組件,自 Java 8 以來一直是可選的。
“Java15有哪些新特性”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
文章標(biāo)題:Java15有哪些新特性
URL標(biāo)題:http://jinyejixie.com/article36/gceopg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、定制網(wǎng)站、網(wǎng)站導(dǎo)航、微信公眾號、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)