這篇文章主要介紹“JDK15有哪些新功能”,在日常操作中,相信很多人在JDK15有哪些新功能問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”JDK15有哪些新功能”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
漳州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),漳州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為漳州上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的漳州做網(wǎng)站的公司定做!
1、EdDSA 數(shù)字簽名算法
新加入 Edwards-Curve 數(shù)字簽名算法(EdDSA)實(shí)現(xiàn)加密簽名。在許多其它加密庫(kù)(如 OpenSSL 和 BoringSSL)中得到支持。與 JDK 中的現(xiàn)有簽名方案相比,EdDSA 具有更高的安全性和性能。這是一個(gè)新的功能。
2、隱藏類
此功能可幫助需要在運(yùn)行時(shí)生成類的框架??蚣苌深愋枰?jiǎng)討B(tài)擴(kuò)展其行為,但是又希望限制對(duì)這些類的訪問(wèn)。隱藏類很有用,因?yàn)樗鼈冎荒芡ㄟ^(guò)反射訪問(wèn),而不能從普通字節(jié)碼訪問(wèn)。此外,隱藏類可以獨(dú)立于其他類加載,這可以減少框架的內(nèi)存占用。這是一個(gè)新的功能。
3、重新實(shí)現(xiàn) DatagramSocket API
重新實(shí)現(xiàn)舊版 DatagramSocket API,更簡(jiǎn)單、更現(xiàn)代的實(shí)現(xiàn)來(lái)代替java.net.DatagramSocket和java.net.MulticastSocketAPI 的基礎(chǔ)實(shí)現(xiàn),提高了 JDK 的可維護(hù)性和穩(wěn)定性。
4、ZGC 功能轉(zhuǎn)正
ZGC 已由JEP 333集成到JDK 11 中,其目標(biāo)是通過(guò)減少 GC 停頓時(shí)間來(lái)提高性能。借助 JEP 377,ZGC 從預(yù)覽功能轉(zhuǎn)變?yōu)樯a(chǎn)功能。
5、文本塊功能轉(zhuǎn)正
文本塊由JEP 355在 2019 年提出,文本塊是一種多行字符串文字,它避免了大多數(shù)轉(zhuǎn)義序列的需要,以一種可預(yù)測(cè)的方式自動(dòng)設(shè)置字符串的格式,并在需要時(shí)使開(kāi)發(fā)人員可以控制格式。借助 JEP 378,文本塊已成為 Java 語(yǔ)言的永久功能。
6、Shenandoah 垃圾回收算法轉(zhuǎn)正
Shenandoah 垃圾回收從實(shí)驗(yàn)特性變?yōu)楫a(chǎn)品特性。這是一個(gè)從 JDK 12 引入的回收算法,該算法通過(guò)與正在運(yùn)行的 Java 線程同時(shí)進(jìn)行疏散工作來(lái)減少 GC 暫停時(shí)間。Shenandoah 的暫停時(shí)間與堆大小無(wú)關(guān),無(wú)論堆棧是 200 MB 還是 200 GB,都具有相同的一致暫停時(shí)間。
7、密封類(預(yù)覽)
通過(guò)密封的類和接口來(lái)增強(qiáng) Java 編程語(yǔ)言,用于限制超類的使用,密封的類和接口限制其它可能繼承或?qū)崿F(xiàn)它們的其它類或接口。
8、instanceof 自動(dòng)匹配模式(預(yù)覽)
舊寫法:
// 先判斷類型 if (obj instanceof String) { // 然后轉(zhuǎn)換 String s = (String) obj; // 然后才能使用 }
新寫法:
if (obj instanceof String s) { // 如果類型匹配 直接使用 } else { // 如果類型不匹配則不能直接使用 }
這是第二次預(yù)覽該功能,我們已經(jīng)在 Java 14 中首次預(yù)覽過(guò)該特性。
9、Records Class(預(yù)覽)
Records Class 也是第二次出現(xiàn)的預(yù)覽功能,它在 JDK 14 中也出現(xiàn)過(guò)一次了,使用 Record 可以更方便的創(chuàng)建一個(gè)常量類,使用的前后代碼對(duì)比如下。
舊寫法:
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) { }
也就是說(shuō)在使用了 record 之后,就可以用一行代碼編寫出一個(gè)常量類,并且這個(gè)常量類還包含了構(gòu)造方法、toString()、equals() 和 hashCode() 等方法。
10、外部存儲(chǔ)器訪問(wèn) API(預(yù)覽)
目的是引入一個(gè) API,以允許 Java 程序安全有效地訪問(wèn) Java 堆之外的外部?jī)?nèi)存。這同樣是 Java 14 的一個(gè)預(yù)覽特性。
11、其它功能
其它功能里面還有一些棄用和不建議使用的功能,比如移除了 Nashorn JavaScript 引擎,同時(shí)也移除了刪除 Solaris 和 SPARC 端口,并標(biāo)記了一些棄用功能。
到此,關(guān)于“JDK15有哪些新功能”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!