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