java se development kit 24是一款全球廣受歡迎的現代開發(fā)平臺,一般簡稱為jdk24,Java 24,也是企業(yè)應用的理想編程語言,有助于企業(yè)降低成本、縮短開發(fā)時間、推動創(chuàng)新以及改善應用服務。同時這也是自java 21以來的第三個非長期支持版本,新版本主要聚焦于AI支持、后量子安全、性能優(yōu)化三大方向,通過增強模式匹配、流處理、向量計算等能力,從而幫助開發(fā)者應對新興技術挑戰(zhàn)。相比jdk23,java se development kit 24更強調未來技術適配性,并將多項預覽功能推進至成熟階段。開發(fā)者需注意,Java 23已于2025年3月18日結束官方支持,建議根據項目需求評估是否升級至24或等待2025年9月的LTS版本JDK 25。
與前一版本相比,全新的java se development kit 24版本一共增加了多個新特性,包括密鑰派生函數 API、提前類加載和鏈接、類文件 API、流收集器、永久禁用安全管理器、虛擬線程的同步而不固定平臺線程、簡化的源文件和實例主方法、量子抗性數字簽名算法、結構化并發(fā)等等,能夠更好的滿足開發(fā)者對性能、新特性和安全性的需求。
java se development kit 24新特性
一、JDK-8341566(字符序列)法新讀本
添加了靜態(tài)工廠方法java.io.Reeader.of(CharSequence),以獲取從CharSequence讀取字符的Reader,String和StringBuilder是CharSequence的示例。在某些情況下,返回的Reader比使用java.io.StringReader更有效,因為后者需要轉換為String并同步。
二、支持Unicode 16.0(JDK-8319993)
此版本將Unicode版本升級到16.0,其中包括Unicode字符數據庫和Unicode標準:
java.lang.Character類支持Unicode字符數據庫,該數據庫增加了5185個字符,總共154998個字符。新增內容包括七個新腳本
1、Garay是一種來自西非的現代使用腳本。
2、Gurung Khema、Kirat Rai、Ol Onal和Sunuwar是來自印度東北部和尼泊爾的四種現代使用文字。
3、托德赫里是阿爾巴尼亞語的一種歷史性文字。
4、Tulu Tigalari是印度西南部的一種歷史性文字。
java.text。Bidi和java.text。規(guī)范化器類分別支持Unicode標準。
java.util.regex包支持基于Unicode標準附錄的擴展字素簇。
三、新方法流程等待(持續(xù)時間)(JDK-8336479)
添加了一個新的重載方法java.lang.Process#waitFor(Duration)。具有超時的現有waitFor()方法需要一個原始超時值及其單位。新方法使用java.time。持續(xù)時間,使用戶不會與單位混淆。
四、不覆蓋現有文件的新JAR命令選項(JDK-8335912)
jar工具的提取操作得到了增強,允許使用--keep舊文件和-k選項來防止覆蓋現有文件。
五、用于監(jiān)視和管理虛擬線程調度程序的新MXBean(JDK-8338890)
一個新的、特定于JDK的監(jiān)控和管理接口JDK.management。添加了VirtualThreadSchedulerMXBean,以允許基于Java管理擴展(JMX)的工具監(jiān)視和管理虛擬線程調度器。該接口支持監(jiān)視虛擬線程調度器的目標并行性、調度器使用的線程以及排隊到調度器的虛擬線程數量。它還支持動態(tài)更改調度器的目標并行度。
六、新的jcmd命令Thread.vthread_scheduler和Thread.vthreade_pollers(JDK-8337199)
jcmd命令行工具中添加了兩個命令,用于打印在診斷虛擬線程問題時可能有用的信息。
jcmd<pid>Thread.vthread_scheduler打印虛擬線程調度程序、目標并行度、線程數和其他有用的計數器。輸出還包括支持虛擬線程執(zhí)行定時操作的延遲任務調度器。
七、支持包含安全屬性文件(JDK-8319332)
java.security安全屬性文件以及java.security.properties系統屬性所引用的文件現在支持包含其他屬性文件。指令包括<path-to-a-file>可用于此目的。包含文件的效果相當于在包含點內聯定義其屬性。在《安全開發(fā)人員指南》的“安全屬性文件包含”部分和JDK-8319333中查找更多信息和示例。
由于此更改,名稱include不能再用于定義安全屬性文件中的屬性。如果名稱include被傳遞給java.security。安全::getProperty或::setProperty API,將拋出IllegalArgumentException。
八、RSASA-PSS簽名的文檔標準哈希和MGF算法(JDK-8248981)
Java安全標準算法名稱規(guī)范中添加了PSSParameterSpec算法名稱的新部分。本節(jié)列出了在使用PSSParameterSpec對象初始化RSASA-PSS簽名時可以指定的標準哈希和消息生成函數(MGF)算法。
九、如果本地PKCS11庫(JDK-8330842)支持,SunPKCS11提供程序將增強為使用CKM_AES_CTS機制
SunPKCS11提供程序已得到增強,以支持Cipher服務類型的以下AES CTS轉換:
AES/CTS/無填充
AES_128/CTS/無填充
AES_192/CTS/無填充
AES_256/CTS/無填充
十、TLSv1.3(JDK-8328608)的可配置新會話票證計數
新的系統屬性jdk.tls.server.newSessionTicket設置JSSE服務器每個會話發(fā)送的TLSv1.3恢復票證的數量??梢栽诿钚猩鲜褂?Djdk.tls.server.newSessionTicket=#進行設置,其中#的范圍為0到10。默認值為1。
十一、通過模式匹配禁用TLS密碼組的機制(JDK-8341964)
可以使用java.security配置文件中的jdk.TLS.disabledAlgorithms安全屬性,使用一個或多個“”通配符禁用TLS密碼套件。例如,“TLS_RSA_”禁用以“TLS_RAS_”開頭的所有密碼套件。只有以“TLS_”開頭的密碼套件才允許使用通配符。
十二、使用JAR工具將JAR文件提取到特定目錄的新選項(JDK-8173970)
jar工具的提取操作已得到增強,允許使用--dir或-C選項指定提取存檔的目錄。
十三、JDK-8344041外部規(guī)格新摘要頁
API文檔包含一個新的摘要頁面,列出了Java SE和JDK API引用的外部規(guī)范??梢栽贏PI文檔導航欄中鏈接的索引頁面中找到新摘要頁面的鏈接。
十四、jpackage支持Windows上的WiX工具集v4和v5(JDK-8319457)
jpackage可以在Windows上使用WiX工具集v4和v5,以及v3。它將自動選擇最新安裝的版本。
jpackage支持WiX v3和v4格式的自定義WiX源。如果使用WiX Toolset v4或v5,jpackage將自動將WiX v3格式的自定義WiX源轉換為WiX v4格式。
十五、將W3C DTD和XSD添加到JDK內置目錄(JDK-8344800)
JDK內置的XML目錄在JDK 22中引入了Java平臺的標準DTD,現在包括W3C規(guī)范定義的以下DTD和XSD。這些DTD和XSD將從XML目錄本地加載,不需要網絡訪問。
軟件優(yōu)勢
1、直接獲取 Oracle 的性能、穩(wěn)定性和安全性更新
2、在公共更新結束后訪問多個 Oracle Java SE 版本
3、Oracle Java SE 8 企業(yè)管理、監(jiān)視及部署特性
4、在公開發(fā)布之前獲取關鍵漏洞修復程序
5、簡單的月度訂閱定價模式
6、訪問 Oracle Java SE 8 商業(yè)功能
7、27 種語言的全天候支持,涵蓋快速修復程序和任務關鍵型應用
8、獲得針對整個 Java 產品組合(包括第三方庫和運行時)的分級支持
9、附帶 Java SE Subscription Enterprise Performance Pack
10、附帶 Java Management Service
11、附帶 Oracle GraalVM 授權 — 無額外成本
JAVA環(huán)境變量配置:
此電腦->右鍵->屬性->高級系統設置->環(huán)境變量:
1、「用戶變量」和「系統變量」分別新建2條變量
變量名:CLASSPATH 變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
變量名:JAVA_HOME 變量值:C:\Program Files\Java\jdk1.8.0_311(安裝目錄版本號路徑)
2、「系統變量」雙擊->Path->編輯環(huán)境變量 -> 分別新建3條
%JAVA_HOME%\bin
C:\Program Files\Java\jdk24.0\bin
C:\Program Files\Java\jre24.0
3、# 檢查JDK環(huán)境配置命令:
CMD 輸入 java -version
軟件功能
一、JEP 478: 密鑰派生函數 API(預覽)
密鑰派生函數 API 是一種用于從初始密鑰和其他數據派生額外密鑰的加密算法。它的核心作用是為不同的加密目的(如加密、認證等)生成多個不同的密鑰,避免密鑰重復使用帶來的安全隱患。 這在現代加密中是一個重要的里程碑,為后續(xù)新興的量子計算環(huán)境打下了基礎
通過該 API,開發(fā)者可以使用最新的密鑰派生算法(如 HKDF 和未來的 Argon2):
二、JEP 483: 提前類加載和鏈接
在傳統 JVM 中,應用在每次啟動時需要動態(tài)加載和鏈接類。這種機制對啟動時間敏感的應用(如微服務或無服務器函數)帶來了顯著的性能瓶頸。該特性通過緩存已加載和鏈接的類,顯著減少了重復工作的開銷,顯著減少 Java 應用程序的啟動時間。測試表明,對大型應用(如基于 Spring 的服務器應用),啟動時間可減少 40% 以上。
這個優(yōu)化是零侵入性的,對應用程序、庫或框架的代碼無需任何更改,啟動也方式保持一致,僅需添加相關 JVM 參數(如 -XX:+ClassDataSharing)。
三、JEP 484: 類文件 API
類文件 API 在 JDK 22 進行了第一次預覽(JEP 457),在 JDK 23 進行了第二次預覽并進一步完善(JEP 466)。最終,該特性在 JDK 24 中順利轉正。
類文件 API 的目標是提供一套標準化的 API,用于解析、生成和轉換 Java 類文件,取代過去對第三方庫(如 ASM)在類文件處理上的依賴。
四、JEP 485: 流收集器
流收集器 Stream::gather(Gatherer) 是一個強大的新特性,它允許開發(fā)者定義自定義的中間操作,從而實現更復雜、更靈活的數據轉換。Gatherer 接口是該特性的核心,它定義了如何從流中收集元素,維護中間狀態(tài),并在處理過程中生成結果。
與現有的 filter、map 或 distinct 等內置操作不同,Stream::gather 使得開發(fā)者能夠實現那些難以用標準 Stream 操作完成的任務。例如,可以使用 Stream::gather 實現滑動窗口、自定義規(guī)則的去重、或者更復雜的狀態(tài)轉換和聚合。 這種靈活性極大地擴展了 Stream API 的應用范圍,使開發(fā)者能夠應對更復雜的數據處理場景。
五、JEP 486: 永久禁用安全管理器
JDK 24 不再允許啟用 Security Manager,即使通過 java -Djava.security.manager命令也無法啟用,這是逐步移除該功能的關鍵一步。雖然 Security Manager 曾經是 Java 中限制代碼權限(如訪問文件系統或網絡、讀取或寫入敏感文件、執(zhí)行系統命令)的重要工具,但由于復雜性高、使用率低且維護成本大,Java 社區(qū)決定最終移除它。
六、JEP 487: 作用域值 (第四次預覽)
作用域值(Scoped Values)可以在線程內和線程間共享不可變的數據,優(yōu)于線程局部變量,尤其是在使用大量虛擬線程時。
作用域值允許在大型程序中的組件之間安全有效地共享數據,而無需求助于方法參數。
七、JEP 491: 虛擬線程的同步而不固定平臺線程
優(yōu)化了虛擬線程與 synchronized 的工作機制。 虛擬線程在 synchronized 方法和代碼塊中阻塞時,通常能夠釋放其占用的操作系統線程(平臺線程),避免了對平臺線程的長時間占用,從而提升應用程序的并發(fā)能力。 這種機制避免了“固定 (Pinning)”——即虛擬線程長時間占用平臺線程,阻止其服務于其他虛擬線程的情況。
現有的使用 synchronized 的 Java 代碼無需修改即可受益于虛擬線程的擴展能力。 例如,一個 I/O 密集型的應用程序,如果使用傳統的平臺線程,可能會因為線程阻塞而導致并發(fā)能力下降。 而使用虛擬線程,即使在 synchronized 塊中發(fā)生阻塞,也不會固定平臺線程,從而允許平臺線程繼續(xù)服務于其他虛擬線程,提高整體的并發(fā)性能。
八、JEP 493:在沒有 JMOD 文件的情況下鏈接運行時鏡像
默認情況下,JDK 同時包含運行時鏡像(運行時所需的模塊)和 JMOD 文件。這個特性使得 jlink 工具無需使用 JDK 的 JMOD 文件就可以創(chuàng)建自定義運行時鏡像,減少了 JDK 的安裝體積(約 25%)。
說明:
Jlink 是隨 Java 9 一起發(fā)布的新命令行工具。它允許開發(fā)人員為基于模塊的 Java 應用程序創(chuàng)建自己的輕量級、定制的 JRE。
JMOD 文件是 Java 模塊的描述文件,包含了模塊的元數據和資源。
九、JEP 495: 簡化的源文件和實例主方法(第四次預覽)
這個特性主要簡化了 main 方法的的聲明。對于 Java 初學者來說,這個 main 方法的聲明引入了太多的 Java 語法概念,不利于初學者快速上手。
十、JEP 497: 量子抗性數字簽名算法 (ML-DSA)
JDK 24 引入了支持實施抗量子的基于模塊晶格的數字簽名算法 (Module-Lattice-Based Digital Signature Algorithm, ML-DSA),為抵御未來量子計算機可能帶來的威脅做準備。
ML-DSA 是美國國家標準與技術研究院(NIST)在 FIPS 204 中標準化的量子抗性算法,用于數字簽名和身份驗證。
十一、JEP 498: 使用 sun.misc.Unsafe 內存訪問方法時發(fā)出警告
JDK 23(JEP 471) 提議棄用 sun.misc.Unsafe 中的內存訪問方法,這些方法將來的版本中會被移除。在 JDK 24 中,當首次調用 sun.misc.Unsafe 的任何內存訪問方法時,運行時會發(fā)出警告。
十二、JEP 499: 結構化并發(fā)(第四次預覽)
JDK 24 引入了結構化并發(fā),一種多線程編程方法,目的是為了通過結構化并發(fā) API 來簡化多線程編程,并不是為了取代java.util.concurrent,目前處于孵化器階段。
結構化并發(fā)將不同線程中運行的多個任務視為單個工作單元,從而簡化錯誤處理、提高可靠性并增強可觀察性。也就是說,結構化并發(fā)保留了單線程代碼的可讀性、可維護性和可觀察性。
結構化并發(fā)的基本 API 是StructuredTaskScope,它支持將任務拆分為多個并發(fā)子任務,在它們自己的線程中執(zhí)行,并且子任務必須在主任務繼續(xù)之前完成。
其它版本下載
-
查看詳情
java se development kit 21(jdk21) v21.0.6
163.04M
-
查看詳情
java se development kit 12 v12.0.1
157.01M
-
查看詳情
java se development kit 17(jdk) v17.0.14官方版
152.32M
-
查看詳情
java se development kit 9(jdk9) v9.0.4 64位32位官方版
356.94M
-
查看詳情
Java SE Development Kit(JDK)7.0官方正式版 32位&64位
277.34M
-
查看詳情
jdk1.8 8u202
209.67M
-
查看詳情
java se development kit 23官方版 v23.0.1.0
203.58M
-
查看詳情
java se development kit 8(jdk1.8) 8u202官方版
209.67M
-
查看詳情
java 11(java se development kit 11) 附安裝教程
149.59M
- 下載地址
- Mac版
發(fā)表評論
0條評論軟件排行榜
熱門推薦
node.js安裝包 v22.14.028.04M / 簡體中文
dotCover 2024官方版 v2024.3.564.81M / 多國語言
jdk1.6 32位/64位官方版 附環(huán)境變量配置教程128.75M / 簡體中文
jdk17官方版 附安裝教程159.72M / 簡體中文
python最新版本 v3.13.127.08M / 簡體中文
微軟visual c++運行庫合集包 v3.0.22.0317官方版85.82M / 簡體中文
dwin dgus(開發(fā)配置工具) v5.04官方版6.87M / 簡體中文
RegEx Tester(正則表達式調試工具) v3.2.0.0綠色版26K / 英文
Report Builder v3.0官方版32.16M / 簡體中文
Convert.NET(代碼翻譯器) v8.4.6675.71官方版4.48M / 多國語言[中文]