Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
jdk17新特性說明和性能方面的提升介紹 PDF 下載
匿名網(wǎng)友發(fā)布于:2024-01-27 15:57:18
(侵權(quán)舉報(bào))
(假如點(diǎn)擊沒反應(yīng),多刷新兩次就OK!)

jdk17新特性說明和性能方面的提升介紹  PDF 下載  圖1

 

 

 

資料內(nèi)容:

 

 

 

概述
據(jù) Oracle Java SE 支持路線圖顯示,JDK 17 是自 Java 11 以來的首個(gè)長期支持
版本。對(duì)于 JDK 17,Oracle 官宣會(huì)提供支持到 2029 年,這給了業(yè)界一個(gè)相
當(dāng)長的期許。
 
新特性
Java 17 的 14 個(gè) 新特性,分別是:
? 306:恢復(fù)始終嚴(yán)格的浮點(diǎn)語義
? 356:增強(qiáng)型偽隨機(jī)數(shù)發(fā)生器
? 382:新的 macOS 渲染管道
? 391:macOS/AArch64 端口
? 398:棄用即將刪除的 Applet API
? 403:強(qiáng)封裝 JDK 的內(nèi)部 API
? 406:Switch 模式匹配(預(yù)覽)
? 407:刪除 RMI 激活
? 409:密封類
? 410:刪除實(shí)驗(yàn)性 AOT 和 JIT 編譯器
? 411:棄用即將刪除安全管理器
? 412:外部函數(shù)和內(nèi)存 API(孵化器)
? 414:Vector API(第二次進(jìn)行特性孵化)
? 415:特定于上下文的反序列化過濾器
 
 
密封類(Sealed Class)
Jdk17 之前的版本帶有 final 修飾符的類是不能繼承的,那如果有些情況,我們還是希望能
擴(kuò)展類的功能,但是限制只有某些類能繼承呢?在 Java 15 和 16 中引入了 Sealed Class
的功能預(yù)覽,在 Java 17 中作為標(biāo)準(zhǔn)功能提供。Sealed Class 只允許特定的類繼承。
// 只允許 Bicycle, Car, Truck 繼承
public abstract sealed class Vehicle permits Bicycle, Car, Truck {...}
// Car 帶有 final 修飾符,防止進(jìn)一步擴(kuò)展
public final class Car extends Vehicle {...}
// Truck 帶有 sealed 修飾符,只允許特定的類繼承public sealed class Truck extends Vehicle permits PickTruck, CyberTruck {...}
// Bicycle 帶有 non-sealed 修飾符,任何類都可以繼續(xù)擴(kuò)展
public non-sealed class Bicycle extends Vehicle {...}
// 任意擴(kuò)展 Bicycle 類
public class Motor extends Bicycle {...}
使用 Sealed Class 還有幾點(diǎn)注意事項(xiàng):
? 被許可的子類,必須在編譯時(shí)能被父類訪問到。
? 被許可的子類,必須直接繼承 Sealed 父類。
? 被許可的子類,必須帶有 final,sealed,non-sealed 三個(gè)修飾符之一。
? 被許可的子類必須在同一個(gè) Java 模塊中。
 
JDK 內(nèi)部元素強(qiáng)封裝
很多程序員以損害安全性和可維護(hù)性的方式使用 JDK 的內(nèi)部元素比如一些非 public 類、方
法和字段。為了繼續(xù)提高 JDK 的安全性和可維護(hù)性,默認(rèn)強(qiáng)封裝 JDK 的所有內(nèi)部元素,從
而限制對(duì)它們的訪問,除了關(guān)鍵的內(nèi)部 API 如 sun.misc.Unsafe。