Java的現(xiàn)代化:AI和量子時代的新工具
Java 24重磅發(fā)布!??解鎖AI和后量子密碼新紀(jì)元!?? JEP 489加速AI推理,Vector API性能飆升!??? JEP 496/497硬核抗量子,安全升級!?? Stream Gatherers、Scoped Values、Structured Concurrency等新特性加持,云原生應(yīng)用更上一層樓!
譯自:Java Modernizes: New Tools for AI and Quantum Age[1]
作者:Chris J Preimesberger
自從 Sun Microsystems 在 2006 年開源[2] Java[3] 以來,創(chuàng)新源源不斷地從其忠誠且富有創(chuàng)造力的開發(fā)社區(qū)涌現(xiàn)。目前的 Java 公司管理者 Oracle[4] 通過發(fā)布 Java 24[5] (Oracle JDK 24),延續(xù)了其在 2010 年收購 Sun 時繼承的傳統(tǒng),該版本于本月早些時候在 JavaOne 2025[6] 上發(fā)布。
這個被廣泛使用的編程語言和開發(fā)平臺的最新迭代版本包含了旨在提高開發(fā)者生產(chǎn)力和改進(jìn)企業(yè)級應(yīng)用程序功能的重大進(jìn)步。JDK 24 包括一個涵蓋語言特性、庫、安全性、工具和性能的升級——幾乎涵蓋了平臺中所有重要的內(nèi)容。
根據(jù) IDC 分析師 Arnal Dayaratna[7] 的說法,Java 通過滿足開發(fā)者的需求,特別是在 AI 驅(qū)動的應(yīng)用程序領(lǐng)域,不斷發(fā)展并保持其價值。Georges Saab[8] 是 Oracle 的高級副總裁,他提到了 Java 24 的包容性,其中包括 20 多個新功能,包括 AI 和后量子密碼支持。此版本加強(qiáng)了 Oracle 對可預(yù)測的六個月發(fā)布節(jié)奏的承諾。
下面列出了幾個與量子相關(guān)的項目。最重要的與 AI 相關(guān)的升級是 JEP 489 (Vector API),它加速了向量計算——這對于 AI 推理和計算密集型任務(wù)至關(guān)重要。毫無疑問,AI 開發(fā)者將大量使用它。
以下是根據(jù) Oracle 規(guī)范,JDK24 改進(jìn)的詳細(xì)信息:
加強(qiáng)安全性
Java 24 優(yōu)先考慮安全性,特別是在面對新興的量子計算威脅時。
- ? JEP 478(Key Derivation Function API) 提高了傳輸中數(shù)據(jù)的密碼安全性。
- ? JEP 496(Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism) 和JEP 497(Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm) 提供了抗量子機(jī)制的實現(xiàn),這是朝著后量子密碼支持邁出的重要一步。這些功能解決了后量子世界中安全通信和數(shù)據(jù)身份驗證的需求。
語言更新
旨在簡化開發(fā)和提高代碼可靠性的關(guān)鍵語言特性是。
? JEP 488(Primitive Types in Patterns, instanceof, and switch) 通過將模式匹配擴(kuò)展到原始類型,提供了更大的統(tǒng)一性和表達(dá)性,從而使 AI 推理應(yīng)用程序受益。
? JEP 492(Flexible Constructor Bodies) 通過在構(gòu)造函數(shù)主體中引入不同的序言和后記階段,簡化了邏輯放置,從而增強(qiáng)了代碼可靠性。
? JEP 494(Module Import Declarations) 簡化了模塊化庫的重用,特別是對于初學(xué)者和集成 AI 邏輯的開發(fā)人員而言。
? JEP 495(Simple Source Files and Instance Main Methods) 為新程序員提供了平滑的學(xué)習(xí)曲線,并允許經(jīng)驗豐富的開發(fā)人員編寫簡潔的小程序。
庫添加
幾個重要的庫改進(jìn)。
? JEP 485(Stream Gatherers) 增強(qiáng)了 Stream API,允許自定義中間操作和更有效的數(shù)據(jù)轉(zhuǎn)換。
? JEP 484(Class-File API) 提供了一個用于解析、生成和轉(zhuǎn)換 Java 類文件的標(biāo)準(zhǔn) API。
? JEP 487(Scoped Values) 改進(jìn)了跨線程的不可變數(shù)據(jù)共享,從而提高了性能和魯棒性。
? JEP 489(Vector API) 加速了向量計算,這對于 AI 推理和計算密集型任務(wù)至關(guān)重要。
? JEP 499(Structured Concurrency) 簡化了多線程編程,從而提高了可維護(hù)性和可靠性。
工具、性能優(yōu)化
? JEP 493 (Linking Run-Time Images without JMODs) 實現(xiàn)了在沒有 JMOD 文件的情況下創(chuàng)建自定義運(yùn)行時鏡像,從而減小了 JDK 的大小。
? JEP 450 (Compact Object Headers) 減小了 HotSpot JVM 中的對象頭大小,從而提高了堆大小和性能。
? JEP 475 (Late Barrier Extension for G1) 優(yōu)化了 G1 垃圾收集器,從而提高了效率和代碼質(zhì)量。
? JEP 483 (Ahead-of-Time Class Loading and Linking) 提高了應(yīng)用程序的啟動時間。
? JEP 490 (ZGC: Remove the Non-Generational Mode) 簡化了 ZGC 的維護(hù)。
? JEP 491 (Synchronize Virtual Threads without Pinning) 增強(qiáng)了虛擬線程的可伸縮性。
? JEP 404 (Generational Shenandoah) 引入了實驗性的分代收集功能。
? JEP 479 (Remove the Windows 32-bit x86 Port) 和 JEP 501 (Deprecate the 32-bit x86 Port for Removal) 精簡了 JDK 的構(gòu)建和測試基礎(chǔ)設(shè)施。
移除某些特性以保證安全性
OpenJDK 社區(qū)還強(qiáng)調(diào)移除其認(rèn)為不安全的功能,包括 JEP 472、JEP 486 和 JEP 498,以維護(hù) Java 的完整性并符合最佳實踐。JEP 472、486 和 498 是增強(qiáng)默認(rèn) Java 平臺完整性[9] 的更廣泛工作的一部分,重點(diǎn)是限制潛在的不安全特性和實踐。
以下是這些 JEP 被認(rèn)為不安全的原因:
JEP 472: Prepare to Restrict the Use of JNI:JNI (Java Native Interface) 允許 Java 代碼[10] 與本地 (C/C++) 代碼交互,這可能會引入安全風(fēng)險和可移植性問題。安全管理器是一種限制遠(yuǎn)程加載代碼(如小程序)權(quán)限的機(jī)制,但隨著小程序的衰落,它變得越來越不相關(guān)。
JEP 486: Permanently Disable the Security Manager:JEP 486 永久禁用了安全管理器,從而移除了一個導(dǎo)致摩擦和復(fù)雜性的功能。此舉簡化了平臺,并降低了與遺留安全機(jī)制相關(guān)的潛在安全漏洞。
JEP 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe:JEP 498 在使用不安全方法時發(fā)出警告,這些方法已被棄用,并將在未來的版本中移除。這使開發(fā)人員為最終移除這些不安全的 API 做好準(zhǔn)備,并鼓勵他們使用更安全的替代方案。
云集成和社區(qū)支持
正如人們所期望的那樣,Oracle 聲稱 Java 24 在 Oracle 云基礎(chǔ)設(shè)施 (OCI) 上運(yùn)行時提供了更高的性能和成本節(jié)省,因為它們是共同設(shè)計的。該公司表示,Oracle Java Universal SE Subscription 提供了新的支持,包括 Java SE Subscription Enterprise Performance Pack 和對 GraalVM[11] 的訪問。
在 JavaOne 大會上,行業(yè)專家對 JDK 24 進(jìn)行了評價。Frank Greco of Crossroads Technologies[12] 強(qiáng)調(diào)了 Vector API 對 AI 應(yīng)用程序的增強(qiáng),而 Richard Fichtner of XDEV Software[13] 贊賞 Stream Gatherers 用于高效的數(shù)據(jù)轉(zhuǎn)換。Dr. Venkat Subramaniam of Agile Developer, Inc.[14] 稱贊了 Stream Gatherers、Scoped Values 和 Structured Concurrency。CodeRanch moderator Jeanne Boyarsky[15] 指出了靈活構(gòu)造函數(shù)的好處以及 Stream Gatherers 的潛力。JetBrains’ Marit van Dijk[16] 強(qiáng)調(diào)了她的公司致力于在 IntelliJ IDEA 中為 Java 24 提供首日支持。
引用鏈接
[1]
Java Modernizes: New Tools for AI and Quantum Age:https://thenewstack.io/java-modernizes-new-tools-for-ai-and-quantum-age/
[2]
開源:https://thenewstack.io/open-source/
[3]
Java:https://thenewstack.io/introduction-to-java-programming-language/
[4]
Oracle:https://developer.oracle.com/?utm_content=inline+mention
[5]
Java 24:https://thenewstack.io/oracle-ships-java-24-ai-is-so-yesterday-says-vp/
[6]
JavaOne 2025:https://www.oracle.com/javaone/
[7]
IDC 分析師 Arnal Dayaratna:https://www.linkedin.com/in/cloudcomputingtoday/
[8]
Georges Saab:https://www.linkedin.com/in/georgessaab/
[9]
Java 平臺完整性:https://inside.java/2025/01/03/evolving-default-integrity/
[10]
Java 代碼:https://thenewstack.io/trash-pandas-love-enterprise-java-code/
[11]
GraalVM:https://thenewstack.io/how-to-build-with-graalvm-inside-github-actions/
[12]
Frank Greco of Crossroads Technologies:https://www.linkedin.com/in/frankdgreco/
[13]
Richard Fichtner of XDEV Software:https://www.linkedin.com/in/richardfichtner/
[14]
Dr. Venkat Subramaniam of Agile Developer, Inc.:https://www.linkedin.com/in/vsubramaniam/
[15]
CodeRanch moderator Jeanne Boyarsky:https://www.linkedin.com/in/jeanne-boyarsky/
[16]
JetBrains’ Marit van Dijk:https://www.linkedin.com/in/maritvandijk/