自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一起聊聊GraalVM for JDK 21

開發(fā) 前端
引入 API 來表示向量計算,這些向量計算在運行時可靠地編譯為支持的 CPU 架構(gòu)上的最佳向量指令,從而實現(xiàn)優(yōu)于等效標(biāo)量計算的性能。

JDK 21 已經(jīng)于 2023 年 9 月 19 日正式發(fā)布。本文總結(jié)了 JDK 21 發(fā)布的新特性。

發(fā)布版本說明

根據(jù)發(fā)布的規(guī)劃,這次發(fā)布的 JDK 21 將是一個長期支持版(LTS 版)。LTS 版每 2 年發(fā)布一個,上一次長期支持版是 21 年 9 月發(fā)布的 JDK 17。

本版本是 Java SE 平臺 21 版的參考實現(xiàn),由 Java 社區(qū)流程中的 JSR 396 指定。

安裝包下載

主要分為 OpenJDK 版本和 Oracle 版本,下載地址如下:

  • OpenJDK 版本:https://jdk.java.net/21/
  • Oracle 版本:https://www.oracle.com/java/technologies/downloads/

上述版本,如果是個人學(xué)習(xí)用途,則差異不大。但如果是用于商業(yè)用途,則需要仔細(xì)看好相關(guān)的授權(quán)。Oracle JDK 商用需要遵循 Oracle No-Fee Terms and Conditions (NFTC) 協(xié)議,而 OpenJDK 根據(jù) GPL v2 許可獲得許可。

更多有關(guān) Java 的基本知識,可以參閱《Java 核心編程》這本書,描述的非常詳細(xì)。

JDK 21 新特性說明

正式穩(wěn)定功能

JEP 431:序列集合

序列集合(Sequenced Collections)在 core-libs/java.util:collections 包中。

該 JEP 提議引入 “一個新的接口族,用于表示集合的概念,這些集合的元素按照預(yù)定義的序列或順序排列,它們是作為集合的結(jié)構(gòu)屬性?!?這一提案的動機是由于集合框架中缺乏預(yù)定義的順序和統(tǒng)一的操作集。

JEP 439:分代 ZGC

分代 ZGC(Generational ZGC)在 hotspot/gc 包中。

通過擴(kuò)展 Z 垃圾回收器(ZGC)來維護(hù)年輕對象和年老對象的獨立生成,從而提高應(yīng)用程序性能。這將使 ZGC 能夠更頻繁地收集年輕對象 —— 這些對象往往英年早逝。

JEP 440:記錄模式

使用記錄模式(Record Patterns)增強 Java 編程語言,以解構(gòu)記錄值??梢郧短子涗浤J胶皖愋湍J剑詫崿F(xiàn)功能強大、聲明性和可組合形式的數(shù)據(jù)導(dǎo)航和處理。

JEP 441:switch 模式匹配

通過 switch 表達(dá)式和語句的模式匹配來增強 Java 編程語言。通過將模式匹配擴(kuò)展到 switch,可以針對多個模式測試表達(dá)式,每個模式都有一個特定的操作,從而可以簡潔、安全地表達(dá)復(fù)雜的面向數(shù)據(jù)的查詢。

JEP 444:虛擬線程

將虛擬線程(Virtual Threads)引入 Java 平臺。虛擬線程是輕量級線程,可以顯著減少編寫、維護(hù)和觀察高吞吐量并發(fā)應(yīng)用程序的工作量。

詳見《Java 下一代高并發(fā)技術(shù) —— 虛擬線程(Virtual Threads)》。

JEP 449:棄用 Windows 32 位 x86 移植

棄用 Windows 32 位 x86 移植,并打算在將來的版本中將其刪除。

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

將代理動態(tài)加載到正在運行的 JVM 中時發(fā)出警告。這些警告旨在讓用戶為將來的版本做好準(zhǔn)備,該版本默認(rèn)情況下不允許動態(tài)加載代理,以提高默認(rèn)情況下的完整性。在啟動時加載代理的可服務(wù)性工具不會導(dǎo)致在任何版本中發(fā)出警告。

JEP 452:密鑰封裝機制 API

介紹一種用于密鑰封裝機制(Key Encapsulation Mechanism,簡稱 KEM)的 API,這是一種使用公鑰加密來保護(hù)對稱密鑰的加密技術(shù)。

預(yù)覽階段功能

JEP 430:字符串模板(預(yù)覽)

使用字符串模板(String Templates)增強 Java 編程語言。字符串模板通過將文本與嵌入的表達(dá)式和模板處理器耦合來生成專門的結(jié)果,從而補充 Java 現(xiàn)有的字符串文本和文本塊。這是一個預(yù)覽語言功能和 API。

JEP 442:外部函數(shù)和內(nèi)存 API(第三次預(yù)覽)

引入 API,Java 程序可以通過該 API 與 Java 運行時之外的代碼和數(shù)據(jù)進(jìn)行互操作。通過有效地調(diào)用外部函數(shù)(即 JVM 外部的代碼),并通過安全地訪問外部內(nèi)存(即不受 JVM 管理的內(nèi)存),API 使 Java 程序能夠調(diào)用本機庫并處理本機數(shù)據(jù),而不會出現(xiàn) JNI 的脆弱性和危險性。這是一個預(yù)覽 API。

JEP 443:未命名模式和變量(預(yù)覽)

使用未命名模式和未命名變量來增強 Java 語言,未命名模式匹配記錄組件而不說明組件的名稱或類型,未命名變量可以初始化但不使用。兩者都用下劃線字符_表示。這是一個預(yù)覽語言功能。

JEP 445:未命名類和實例主方法(預(yù)覽)

發(fā)展 Java 語言,使學(xué)生無需理解為大型程序設(shè)計的語言功能即可編寫第一個程序。學(xué)生們不用使用單獨的 Java 方言,就可以為單類程序編寫精簡的聲明,然后隨著技能的發(fā)展,無縫地擴(kuò)展程序,使用更高級的功能。這是一個預(yù)覽語言功能。

JEP 446:作用域值(預(yù)覽)

引入作用域值,這些值可以在不使用方法參數(shù)的情況下安全有效地共享給方法。它們優(yōu)先于線程化局部變量,尤其是在使用大量虛擬線程時。這是一個預(yù)覽 API。

實際上,作用域值是一個隱式方法參數(shù)。這 “就好像” 一系列調(diào)用中的每個方法都有一個額外的、不可見的參數(shù)。沒有任何方法聲明此參數(shù),只有能夠訪問作用域值對象的方法才能訪問其值(數(shù)據(jù))。通過作用域值,可以通過一系列中間方法將數(shù)據(jù)從調(diào)用者安全地傳遞給遙遠(yuǎn)的被調(diào)用者,這些中間方法不聲明數(shù)據(jù)的參數(shù),也無法訪問數(shù)據(jù)。

JEP 453:結(jié)構(gòu)化并發(fā)(預(yù)覽)

通過引入用于結(jié)構(gòu)化并發(fā)(Structured Concurrency)的 API 來簡化并發(fā)編程。結(jié)構(gòu)化并發(fā)將在不同線程中運行的相關(guān)任務(wù)組視為單個工作單元,從而簡化錯誤處理和消除,提高可靠性,并增強可觀察性。這是一個預(yù)覽 API。

孵化階段功能

JEP 448:Vector API(孵化器第六階段)

引入 API 來表示向量計算,這些向量計算在運行時可靠地編譯為支持的 CPU 架構(gòu)上的最佳向量指令,從而實現(xiàn)優(yōu)于等效標(biāo)量計算的性能。

參考引用

責(zé)任編輯:武曉燕 來源: OSCHINA
相關(guān)推薦

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2023-09-10 21:42:31

2023-06-30 08:18:51

敏捷開發(fā)模式

2021-08-27 07:06:10

IOJava抽象

2024-02-20 21:34:16

循環(huán)GolangGo

2022-12-07 09:01:14

布局容器VStack?

2022-06-26 09:40:55

Django框架服務(wù)

2022-02-14 07:03:31

網(wǎng)站安全MFA

2022-10-28 07:27:17

Netty異步Future

2022-11-12 12:33:38

CSS預(yù)處理器Sass

2023-04-26 07:30:00

promptUI非結(jié)構(gòu)化

2022-04-06 08:23:57

指針函數(shù)代碼

2023-12-28 09:55:08

隊列數(shù)據(jù)結(jié)構(gòu)存儲

2023-07-27 07:46:51

SAFe團(tuán)隊測試

2024-02-26 00:00:00

Go性能工具

2025-03-27 02:00:00

SPIJava接口

2022-12-07 13:12:15

2022-07-29 08:17:46

Java對象內(nèi)存
點贊
收藏

51CTO技術(shù)棧公眾號