Python知識分享網(wǎng) - 專業(yè)的Python學習網(wǎng)站 學Python,上Python222
jdk17新特性說明和性能方面的提升介紹 PDF 下載
發(fā)布于:2024-01-27 15:57:18
(假如點擊沒反應,多刷新兩次就OK!)

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

 

 

 

資料內(nèi)容:

 

 

 

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