

Java 24 是一個短期 JDK 版本,將獲得為期六個月的高階支援。它將於2025 年 3 月 18 日由Oracle 釋出。Java 24 包含 24 個實驗性、孵化器、預覽和永久功能。
繼續閱讀以詳細瞭解這些 JEP 中包含的內容以及 Java 24 之後 Oracle 路線圖的下一步計劃。
目錄
-
什麼是 Java 24?
-
什麼是 JEP?
-
Java 24 中的實驗性 JEP
-
Java 24 中的孵化器 JEP
-
Java 24 中的 JEP 預覽
-
Java 24 中的永久 JEP
-
Java 24 之後會出現什麼?
-
對 Java 24 的最終思考
什麼是 Java 24?
Java 24 是一個短期 JDK 版本,將於 2025 年 3 月釋出。Java 25 是一個長期支援 JDK,將於 2025 年 9 月取代 Java 24。
Java 24 也稱為 JDK 24,代表 Java 開發工具包 (JDK)。Java 24 將包括兩個實驗性 JEP、一個孵化器 JEP、七個預覽 JEP 和 14 個永久 JEP。
什麼是 JEP?
JEP(Java 增強提案)是新 Java 特性從初步介紹和實際測試進展到成為 JDK 中永久組成部分的手段。
JEP 主要有四種類型:實驗性 JEP、孵化器 JEP、預覽 JEP 和永久 JEP。
Java 24 中的實驗性 JEP
實驗性 JEP 是尚未最終確定且仍在開發中的增強提案。透過將這些功能作為實驗性 JEP 釋出,Oracle 可以徵求具有實際場景的使用者反饋。
Java 24 中有兩個實驗性的 JEP。
JEP 404:一代 Shenendoah
此實驗性 JEP 的主要目的是探索分代模式的可能性,而不會破壞非分代 Shenendoah。
Oracle 打算在未來版本中將分代模式設為預設模式。
JEP 450:緊湊物件頭
此實驗性 JEP 的目標是將HotSpot JVM 中的物件頭大小從 96 到 128 位減少到 64 位架構上的 64 位。這將減少堆大小、提高部署密度並增加資料區域性性。
Java 24 中的孵化器 JEP
孵化器 JEP 指的是仍在開發中且尚未最終確定的功能。孵化器 JEP 是一種將實驗性功能引入社群進行早期測試和反饋的方式,之後這些功能將成為語言的標準部分。
Java 24 中有1個孵化器 JEP。
JEP 489:Vector API(第九個孵化器)
如果向量 API 功能你聽起來很熟悉,那是因為它最初是在 Java 16 中作為孵化 API 引入的。
向量API 被提議在 Java 17、Java 18、Java 19、Java 20、Java 21、Java 22 和 Java 23 中進行進一步的孵化。
現在,向量 API 再次被提議作為孵化器功能,並進行了一些顯著的變化:
-
selectFrom跨車道操作的新變體接受兩個輸入向量,用作查詢表。
-
selectFrom和重新排列跨通道操作現在包裝索引而不是檢查越界索引。
-
ARM 和 RISC-V 上的超越和三角通道運算現在透過內部函式實現。
-
新的基於值的類 Float16 表示 IEEE 754 二進位制 16 格式的 16 位浮點數。
-
增加了算術積分車道運算。
Java 24 中的 JEP 預覽
預覽功能是已完全開發的功能,但在作為永久功能引入 JDK 之前仍可能會發生變化。Java 24 包含七個預覽功能,下面將詳細介紹。
JEP 478:金鑰派生函式 API
此 JEP 引入了金鑰派生函式 (KDF) 的 API,KDF 是一種加密演算法,用於從金鑰和其他資料中派生出其他金鑰。它使應用程式能夠使用 KDF 演算法,例如基於 HMAC 的提取和擴充套件金鑰派生函式和 Argon2。
JEP 487:範圍值(第四個預覽版)
此 JEP 允許方法與執行緒內的呼叫方以及子執行緒共享不可變資料。作用域值比執行緒區域性變數更容易推斷。
這是範圍值的第四次預覽;它最初在 Java 20中作為孵化器 JEP提出,隨後在 Java 21、Java Java 22 和 Java 23中作為預覽功能重新引入。它在 Java 24 中再次被重新引入,以徵求更多反饋。
JEP 488:模式中的原始型別、instanceof和 switch(第二個預覽)
此預覽語言功能透過允許所有模式上下文中的原始型別來增強模式匹配,並擴充套件instanceof和 switch 以使用所有原始型別。它是在 Java 23 中引入的,並且正在重新引入,沒有變化。
JEP 492:靈活的建構函式主體(第三次預覽)
該 JEP 重新構想了建構函式在物件初始化過程中的作用,使開發人員能夠更自然地將他們當前必須考慮的邏輯放入輔助靜態方法、輔助中間建構函式或建構函式引數中。
JEP 494:模組匯入宣告(第二預覽版)
透過簡潔地匯入模組匯出的所有包來增強 Java 程式語言。這簡化了模組庫的重用,但不要求匯入程式碼位於模組本身中。
JEP 495:簡單原始檔和例項主要方法(第四個預覽版)
該 JEP 改進了 Java 程式語言,以便初學者無需瞭解為大型程式設計的語言功能即可編寫他們的第一個程式。
JEP 499:結構化併發(第四個預覽版)
該 JEP 將在不同執行緒中執行的相關任務組視為單個工作單元,從而簡化錯誤處理和取消、提高可靠性並增強可觀察性。
Java 24 中的永久 JEP
以前的 JDK 中已經引入了永久功能,經過迭代和改進後已準備好永久釋出。Java 24 中的所有 14 個永久 JEP 都出現在以前的 JDK 中。
這些永久功能包括:
-
JEP 472:準備限制 JNI 的使用
-
JEP 475:G1 的後期屏障擴充套件
-
JEP 479:刪除 Windows 32 位 x86 埠
-
JEP 483:提前類載入和連結
-
JEP 484:類檔案 API
-
JEP 485:流收集器
-
JEP 486:永久停用安全管理器
-
JEP 490:ZGC:刪除非分代模式
-
JEP 491:無需固定即可同步虛擬執行緒
-
JEP 493:無需 JMOD 即可連結執行時影像
-
JEP 496:基於抗量子模組格的金鑰封裝機制
-
JEP 497:基於模組格的抗量子數字簽名演算法
-
JEP 498:在sun.misc.Unsafe中使用記憶體訪問方法時發出警告
-
JEP 501:棄用 32 位 x86 埠並將其刪除
Java 24 之後會出現什麼?
Java 24 不是長期支援的JDK,Oracle 只會支援六個月。它將被 Java 25 取代,後者將是一個長期支援版本。這是 Oracle 每兩年釋出一個 LTS版本的承諾的延續,比之前每三年釋出一次的節奏有所加快。
對 Java 24 的最終思考
Java 24 可能只是一個小版本,但它包含了很多功能。即使不打算在業務中採用 Java 24,Java 開發人員也應該注意,因為其中許多功能將在 Java 25 中規範化。
希望對大家有價值,歡迎留言。
編輯:跨年的大雄參考: https://www.jrebel.com/blog/whats-new-java-24
相關閱讀: