AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

Java 21正式發(fā)布,15大特性一覽

來源: 責(zé)編: 時間:2023-09-21 20:47:41 319觀看
導(dǎo)讀Java 開發(fā)工具包(JDK) 21 是 Oracle 標(biāo)準(zhǔn) Java 實現(xiàn)的最新長期支持 (LTS) 版本,現(xiàn)已推出生產(chǎn)版本。比較實用的我看就5個,字符串模板、有序集合、記錄模式、switch的模式匹配、虛擬線程,其他一般也用不大到。1. JEP 430:字

Java 開發(fā)工具包(JDK) 21 是 Oracle 標(biāo)準(zhǔn) Java 實現(xiàn)的最新長期支持 (LTS) 版本,現(xiàn)已推出生產(chǎn)版本。比較實用的我看就5個,字符串模板、有序集合、記錄模式、switch的模式匹配、虛擬線程,其他一般也用不大到。yBm28資訊網(wǎng)——每日最新資訊28at.com

yBm28資訊網(wǎng)——每日最新資訊28at.com

3.JEP 439:分代 ZGC

通過擴(kuò)展 ZGC 來為新對象和舊對象維護(hù)不同的代,從而提高應(yīng)用程序性能。年輕的對象往往會早逝;維護(hù)不同的代將允許 ZGC 更頻繁地收集年輕對象。使用分代 ZGC 運行的應(yīng)用程序具有以下優(yōu)勢:分配停頓的風(fēng)險較低,所需的堆內(nèi)存開銷較低,并且垃圾收集 CPU 開銷較低。與非分代 ZGC 相比,這些好處應(yīng)該是可以實現(xiàn)的,而不會顯著降低吞吐量。yBm28資訊網(wǎng)——每日最新資訊28at.com

4.JEP 440:記錄模式

使用記錄模式增強(qiáng) Java 編程語言以解構(gòu)記錄值。記錄模式和類型模式可以嵌套,以實現(xiàn)強(qiáng)大的、聲明性的、可組合形式的數(shù)據(jù)導(dǎo)航和處理。yBm28資訊網(wǎng)——每日最新資訊28at.com

示例:yBm28資訊網(wǎng)——每日最新資訊28at.com

// Java 16record Point(int x, int y) {}static void printSum(Object obj) {    if (obj instanceof Point p) {        int x = p.x();        int y = p.y();        System.out.println(x+y);    }}// Java 21static void printSum(Object obj) {    if (obj instanceof Point(int x, int y)) {        System.out.println(x+y);    }}

5.JEP 441:switch的模式匹配

switch 通過表達(dá)式和語句的模式匹配增強(qiáng) Java 編程語言。擴(kuò)展模式匹配switch允許針對多個模式測試表達(dá)式,每個模式都有一個特定的操作,以便可以簡潔、安全地表達(dá)復(fù)雜的面向數(shù)據(jù)的查詢。yBm28資訊網(wǎng)——每日最新資訊28at.com

示例:yBm28資訊網(wǎng)——每日最新資訊28at.com

static String formatterPatternSwitch(Object obj) {    return switch (obj) {        case Integer i -> String.format("int %d", i);        case Long l    -> String.format("long %d", l);        case Double d  -> String.format("double %f", d);        case String s  -> String.format("String %s", s);        default        -> obj.toString();    };}
static void testFooBarNew(String s) {    switch (s) {        case null         -> System.out.println("Oops");        case "Foo", "Bar" -> System.out.println("Great");        default           -> System.out.println("Ok");    }}

6.JEP 442:外部函數(shù)和內(nèi)存 API

通過高效地調(diào)用外部函數(shù)并安全地訪問外部內(nèi)存,該 API 使 Java 程序能夠調(diào)用本機(jī)庫并處理本機(jī)數(shù)據(jù),而沒有 JNI(Java 本機(jī)接口)的脆弱性和危險性。該 API 之前已在JDK 20 和JDK 19中預(yù)覽。JDK 21 預(yù)覽版中的改進(jìn)包括增強(qiáng)的布局路徑,其中包含用于取消引用地址布局的新元素。yBm28資訊網(wǎng)——每日最新資訊28at.com

7.JEP 443:未命名模式和變量

使用未命名模式和未命名變量(可以初始化但不能使用)增強(qiáng) Java 語言,未命名模式匹配記錄組件而不說明組件的名稱或類型。兩者都由下劃線字符 表示_。yBm28資訊網(wǎng)——每日最新資訊28at.com

未命名模式示例:yBm28資訊網(wǎng)——每日最新資訊28at.com

a instanceof Point(_, int y)

未命名的模式變量:yBm28資訊網(wǎng)——每日最新資訊28at.com

r instanceof Point _r instanceof ColoredPoint(Point(int x, int _), Color _)

8.JEP 444:虛擬線程

虛擬線程是輕量級線程,可以顯著減少編寫、維護(hù)和觀察高吞吐量并發(fā)應(yīng)用程序的工作量。yBm28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建虛擬線程示例:yBm28資訊網(wǎng)——每日最新資訊28at.com

try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {    IntStream.range(0, 10_000).forEach(i -> {        executor.submit(() -> {            Thread.sleep(Duration.ofSeconds(1));            return i;        });    });}

9.JEP 445:未命名類和實例Main方法

核心目的是幫助教學(xué)和學(xué)習(xí)。yBm28資訊網(wǎng)——每日最新資訊28at.com

以后寫 main 方法就變得簡單了,不需要一堆的修飾符。如下:yBm28資訊網(wǎng)——每日最新資訊28at.com

class HelloWorld {     void main() {         System.out.println("Hello, World!");    }}

甚至可以不需要類聲明,代碼削減:yBm28資訊網(wǎng)——每日最新資訊28at.com

void main() {       System.out.println("Hello, World!");}

說明:未命名包中的類不能被命名包中的類顯式引用。yBm28資訊網(wǎng)——每日最新資訊28at.com

10.JEP 446:作用域值

將支持在線程內(nèi)和線程間共享不可變數(shù)據(jù)。它們優(yōu)于線程局部變量,特別是在使用大量虛擬線程時。線程局部變量具有設(shè)計缺陷,包括無約束的可變性、無限制的生命周期和昂貴的繼承。作用域值允許在大型程序中的組件之間安全地共享數(shù)據(jù),而無需求助于方法參數(shù)。yBm28資訊網(wǎng)——每日最新資訊28at.com

11.JEP 448:向量API

引入 API 來表達(dá)向量計算,在運行時可靠地編譯為支持的 CPU 架構(gòu)上的最佳向量指令,從而實現(xiàn)優(yōu)于同等標(biāo)量計算的性能。yBm28資訊網(wǎng)——每日最新資訊28at.com

12.JEP 449:棄用 Windows 32 位 x86 端口

目標(biāo)是在未來版本中刪除該端口,原因是最后一個支持 32 位操作的 Windows 操作系統(tǒng) Windows 10 將于 2025 年 10 月結(jié)束生命周期。yBm28資訊網(wǎng)——每日最新資訊28at.com

13.JEP 451:準(zhǔn)備禁止動態(tài)加載代理

在 JDK 21 中,計劃要求動態(tài)加載代理必須得到應(yīng)用程序所有者的批準(zhǔn),就像代理啟動時加載所要求的那樣。此更改將使 Java 平臺更接近默認(rèn)完整性。yBm28資訊網(wǎng)——每日最新資訊28at.com

14.JEP 452:密鑰封裝機(jī)制 API

該提案的目標(biāo)之一是使應(yīng)用程序能夠使用 KEM 算法,例如 RSA 密鑰封裝機(jī)制 (RSA-KEM)、橢圓曲線集成加密方案 (ECIES) 以及美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) 的候選算法后量子密碼學(xué)標(biāo)準(zhǔn)化過程。另一個目標(biāo)是允許在傳輸層安全 (TLS) 等更高級別協(xié)議和混合公鑰加密 (HPKE) 等加密方案中使用 KEM。安全提供商將能夠以 Java 代碼或本機(jī)代碼實現(xiàn) KEM 算法,并包括RFC 9180中定義的 Diffie-Hellman KEM (DHKEM) 的實現(xiàn)。yBm28資訊網(wǎng)——每日最新資訊28at.com

15.JEP 453:結(jié)構(gòu)化并發(fā)

通過結(jié)構(gòu)化并發(fā) API 簡化了并發(fā)編程,將在不同線程中運行的相關(guān)任務(wù)組視為單個工作單元。這簡化了錯誤處理和取消,提高了可靠性并增強(qiáng)了可觀察性。結(jié)構(gòu)化并發(fā)之前在JDK 20JDK 19中孵化,分別于 2022 年 3 月和 2022 年 9 月發(fā)布;它將作為java.util.concurrent包中的預(yù)覽 API。這次唯一顯著的變化是該StructuredTaskScope::Fork(…)方法返回 Subtask而不是 Future。結(jié)構(gòu)化并發(fā)的目標(biāo)包括推廣一種并發(fā)編程風(fēng)格,可以消除因取消和關(guān)閉而產(chǎn)生的常見風(fēng)險,例如線程泄漏和取消延遲,以及提高并發(fā)代碼的可觀察性。yBm28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-10896-0.htmlJava 21正式發(fā)布,15大特性一覽

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 用 Rust 編碼?這是 JetBrains 的新 IDE

下一篇: 這種方法可以解決開發(fā)中的重復(fù)“造輪子”

標(biāo)簽:
  • 熱門焦點
Top