Java Development Kit 27(JDK 27)是由Oracle主導推進的Java標準版本計劃更新,首個發布候選版本(RC)預計於8月6日發布。此次更新涵蓋多項重要特性,包括將Garbage-First(G1)垃圾回收器設為默認收集器,以及引入結構化並發以簡化並發編程。目前JDK 27已進入降坡階段二,功能集已正式凍結。
此次JDK 27共列出九項新特性,作為參考實現版本對外呈現。前五項包括:將G1設為默認垃圾回收器、為TLS 1.3添加後量子混合密鑰交換、惰性常量、結構化並發,以及在模式匹配、instanceof和switch中支持原始類型。後四項分別為:緊湊對象頭、JFR(JDK飛行記錄器)進程內數據脫敏、向量API,以及針對加密對象的PEM(隱私增強郵件)編碼支持。
JDK 27最終發布候選版本將於8月20日推出,正式版計劃於9月15日發布。早期訪問構建版本可在jdk.java.net獲取。
G1成為全平台默認垃圾回收器
在JDK 27中,G1垃圾回收器將在所有環境下成為默認收集器,而非僅限於伺服器環境。此舉旨在確保HotSpot JVM始終選用G1,同時保證吞吐量、延遲、內存占用和啟動時間等性能指標不出現明顯退化。
後量子混合密鑰交換增強安全性
針對TLS 1.3的後量子混合密鑰交換特性,旨在通過實現混合密鑰交換算法,提升需要安全網路通信的Java應用程式的安全性。該算法將抗量子算法與傳統算法相結合,以抵禦未來量子計算的潛在攻擊。
惰性常量引入全新API
惰性常量為持有不可變數據的對象引入了一套API。JVM將惰性常量視為真正的常量,從而能夠享有與聲明final欄位相同的性能優化。但與final欄位相比,惰性常量在初始化時機上提供了更大的靈活性。該特性目前處於第三次預覽階段。
原始類型擴展模式匹配能力
在模式匹配、instanceof和switch中支持原始類型,旨在通過允許在所有模式上下文中使用原始類型來增強模式匹配,並將instanceof和switch擴展至支持所有原始類型。該特性目前處於第五次預覽階段。
結構化並發簡化多線程編程
結構化並發通過引入一套API,將運行於不同線程中的相關任務組視為單一工作單元,從而簡化並發編程。其目標包括簡化錯誤處理與取消機制、提升可靠性並增強可觀測性。結構化並發目前處於第七次預覽階段。
緊湊對象頭降低內存開銷
JDK 27將緊湊對象頭設為HotSpot JVM中的默認對象頭布局。在64位架構上,緊湊對象頭將對象頭從96位壓縮至64位,從而縮減堆內存占用、提升部署密度並增強數據局部性。
JFR進程內數據脫敏保護敏感資訊
JFR進程內數據脫敏功能允許用戶對JFR錄製文件中的命令行參數、環境變量初始值及系統屬性初始值進行脫敏處理。JFR錄製文件可能包含敏感數據,例如命令行參數中的密鑰、環境變量中的訪問令牌以及系統屬性中的密碼。此類數據將在離開進程前(可選)完成脫敏,防止敏感資訊泄露。
向量API優化計算性能
向量API引入了一套用於表達向量計算的接口,這些計算在運行時能夠可靠地編譯為受支持CPU上的最優向量指令,從而實現優於等效標量計算的性能表現。該API目前處於第12次孵化階段。
PEM編碼支持加密對象處理
加密對象的PEM編碼特性引入了一套API,用於將代表加密密鑰、證書及證書吊銷列表的對象編碼為PEM傳輸格式,並支持從PEM格式解碼還原為對象。該特性目前處於預覽API階段。
JDK 27屬於短期功能版本(非LTS),Oracle將提供六個月的支持周期。其前代版本JDK 26同樣為短期版本,已於今年3月17日正式發布。
Q&A
Q1:JDK 27的正式版什麼時候發布?
A:JDK 27計劃於2026年9月15日正式發布。在此之前,首個發布候選版本(RC)將於8月6日推出,最終發布候選版本將於8月20日跟進。如需提前體驗,可在jdk.java.net獲取早期訪問構建版本。
Q2:JDK 27中G1垃圾回收器有什麼變化?
A:在JDK 27中,G1垃圾回收器將成為所有環境下的默認收集器,而此前它僅在伺服器環境中默認啟用。此次變更旨在確保HotSpot JVM始終選用G1,同時保證吞吐量、延遲、內存占用和啟動時間等關鍵性能指標不出現明顯下滑。
Q3:JDK 27的結構化並發功能有什麼用?
A:結構化並發通過將運行於不同線程中的相關任務組視為單一工作單元,來簡化並發編程。它提供了一套專用API,目標是簡化錯誤處理與任務取消機制、提升程序可靠性,並增強運行時的可觀測性。該特性目前處於第七次預覽階段,尚未正式定型。






