北極時間3月20日消息,oracle 正式發布 java 22,這是備受歡迎的編程語言和開發平台推出的全新版本。java 22 (oracle jdk 22) 在性能、穩定性和安全性方面進行了數千種改進,包括對java 語言、其api 和性能,以及java 開發工具包(jdk)中工具的增強功能,以幫助開發人員提高工作效率,推動企業加速創新和發展。
甲骨文公司 java 平台高級副總裁兼 openjdk 管理委員會主席 georges saab 表示:“java 22 新的增強功能讓更多開發人員能夠快速、輕鬆地構建和交付功能豐富、可擴展且安全的應用,從而幫助全球各地的組織發展業務。這些增強功能可以簡化應用開發,擴大 java 的覆蓋範圍,以供不同技術水平的開發人員訪問,幫助組織和開發人員創建各種新的應用和服務。”
全新版本的 jdk 更新和改進了 12 項jdk 增強建議 (jeps) 。jdk 22 將提供openjdkproject amber 的語言改進(statements before super[…]、unnamed variables & patterns、stringtemplates 以及 implicitly declared classes 和 instance main methods);project panama 的改進(foreign function 以及 memory api 和 vector api);有關 project loom 的特性(structured concurrency 和 scoped values);核心庫和工具功能(class-file api、launch multi-file source-codeprograms、stream gatherers)以及性能更新(region pinning for g1)。
idc 軟件開發研究副總裁 arnal dayaratna 表示:“經過近三十年發展,java 能夠支持各種用例的複雜開發任務,這種能力讓該平台變得十分重要。java 的多功能性和全面的工具集使其能夠大規模支持生產級關鍵任務應用的開發,因此成為了生成式 ai 等創新用例的關鍵支持技術。”
java 22 提供的重要更新包括:
project amber 的特性
· jep 447:statements before super(…) — 支持開發人員自由地表達構造器的行為。對於未引用正在創建的實例的語句,該語句也可以在調用顯式構造器之前出現,讓開發人員可以更自然地放置邏輯。該邏輯需要納入輔助靜態方法、輔助中間構造器或構造器參數中。該特性還將延續現有保證,即允許構造器在類實例化期間按自上而下的順序運行,以幫助確保子類構造器中的代碼不會干擾超類實例化。此外,此特性不需要對 java virtual machine (jvm) 進行任何更改,並且僅依賴於jvm 的當前能力來驗證和執行在構造器中顯式調用之前顯示的代碼。
· jep 456:unnamed variables & patterns — 通過未命名的變量和模式來增強 java 語言。在必須使用變量聲明或嵌套模式,但又從未使用過的情況下,開發人員可以使用這些變量和模式來提高生產力。這種方法可以減少出錯的機會,提高記錄模式的可讀性,並提高代碼的可維護性。
· jep 459:string templates(第二預覽版)— 使包含運行時計算值的字符串更容易表達,簡化 java 程序的開發工作,同時提高將用戶提供的值編寫成字符串,並將字符串傳遞給其他系統的程序的安全性。此外,該特性還可提高參雜了表達式和文本的可讀性,創建通過文字文本和嵌入表達式計算的非字符串值,而無需通過中間字符串表示形式傳遞。
· jep 463:implicitly declared classes and instance main methods(第二預覽版)— 通過 java 編程入門教程,學生無需了解為大型程序而設計的語言功能,即可順利編寫第一個程序,加快了上手速度。通過此特性,教育工作者可以循序漸進地介紹概念,學生也可以編寫簡化的單類程序聲明,並隨着個人技能的提升,無縫擴展程序並使用更高級的功能。
project loom 的特性
· jep 462:structured concurrency(第二預覽版)—通過引入用於結構化並發的 api,幫助開發人員簡化錯誤處理和取消,並提高可觀測性,進而鼓勵更多人選擇並發編程。該編程風格可以消除因取消和關閉而產生的常見風險,例如線程泄漏和取消延遲,以此提高並發代碼的可觀測性。
· jep 464:scoped values(第二預覽版)— 支持開發人員在線程內和線程之間共享不可變數據,從而提高項目的易用性、可理解性、性能和穩健性。
project panama 的特性
· jep 454: foreign function & memory api — 新推出的 api 使java 程序更容易與 java 運行時之外的代碼和數據互操作,從而幫助開發人員提高易用性、靈活性、安全性和性能。通過有效調用外部函數(即 java virtual machine (jvm) 之外的代碼),以及安全地訪問外部內存(即不受 jvm 管理的內存),這個新的 api 支持 java 程序在無需 java native interface 的情況下調用本地庫和處理原生數據。
· jep 460:vector api (七次孵化階段)— 引入 api來表達向量計算,在運行時可靠地編譯為支持的 cpu 架構上的向量指令,使開發人員獲得優於等效標量計算的性能。
核心庫和工具功能
· jep 457:class-file api(預覽版)— 通過提供用於解析、生成和轉換 java 類文件的標準 api,幫助開發人員提高工作效率。
· jep 458:launch multi-file source-code programs — 支持開發人員通過增強 java 應用啟動器,選擇是否以及何時需要配置構建工具,從而運行作為多個 java 源代碼文件提供的程序。
· jep 461:stream gatherers(預覽版)— 通過增強 stream api 來支持自定義中間操作,讓流管道能以比現有內置中間操作更輕鬆的方式轉換數據,從而幫助開發人員提高工作效率。此特性能夠使流管道更靈活、更具表達力,允許自定義中間操作處理大小不限的流,幫助開發人員高效讀取、寫入和維護 java 代碼。
性能更新
· jep 423:region pinning for g1 — 在原本需要暫停收集器的本機庫調用期間,允許進行某些資源回收,有助於減少延遲。其中的原理是,在本機庫調用期間,對需要禁止的對象以及僅“固定”包含這些對象的區域進行跟蹤。如此一來,即使是在原本會禁止本機庫調用的期間,未固定的區域也可以繼續正常進行資源回收。
java 22 是 oracle 與全球 java 開發人員社區成員通過 openjdk 社區 和 java community process (jcp) 共同合作的成果。java 22 除了推出了新的增強功能和特性,也獲得 java management service (jms) 的支持,這是一項新的 oracle 雲基礎設施遠程軟件服務(oracle cloud infrastructure, oci) 原生服務,提供統一的控制台和儀錶盤,幫助企業管理本地或雲端的java 運行時和應用。有關 java 22 特性的更多信息,請閱讀 java 22 技術博客文章。
雲技術創新賦能全球 java 生態系統
oci 是率先支持 java 22 的超大規模雲技術之一,部署在 oci 中的 java 可提供出色的性能、效率和創新。通過在 oci 上免費提供 oracle java se、oracle graalvm 和 java se subscriptionenterprise performance pack,java 22 助力開發人員構建和部署速度更快、更出色且優化性價比的應用。
oracle java universal se subscription 是一個按量計費產品,可為客戶提供優秀的支持服務。該產品提供對整個 java 產品組合的支持、graalvm 授權、java se subscription enterprise performance pack、java management service 增強功能以及按業務計划進行升級的靈活性,有助於 it 組織管理複雜性、控制成本並降低安全風險。
javaone 將於 2025 年回歸
全球 java 社區的旗艦活動 javaone 將於 2025 年重返美國舊金山灣區。javaone 2025 將於 2025 年 3 月 17 日至 20 日在加利福尼亞州紅木海岸舉行,參會者將有機會了解java 開發並與 oracle 的java 專家和行業人士互動。欲了解更多信息,請訪問inside java 博客文章。
tjc 社區負責人 evren tan 表示:“在 türkiye java community (tjc) 的動態生態系統中,oracle 的持續支持推動了我們的發展。隨着 java 22 的推出,我們可以使用一系列的現代化功能,進一步提高開發人員效率,加強我們對在土耳其發展 java 技術的承諾。我們也歡迎全球的 java 開發人員參加 tjc 的活動,共同培養友好的社區精神,助力 java 蓬勃發展。”
xhub 創始人兼首席信息官 badr elhourari 表示:“java 將作為一種熱門的編程語言、平台和開發人員社區,在摩洛哥和非洲地區持續發展。在 java 22 中,我很高興看到 oracle java 團隊專註於創新,通過 jep 463 等增強功能幫助新的開發人員更快地上手 java。對新一代程序員來說,經過簡化後的 java 語言降低了門檻。同時,在摩洛哥,我們將在年度 devoxx 摩洛哥會議上繼續強調 java 的重要性,歡迎所有開發人員踴躍參加今年10月2-4日的活動,聽 java 社區中的全球高影響力人物分享真知灼見。”
jetbrains 的 java 開發人員倡導者 mala gupta 表示:“java 22 捆綁包特性讓我感到驚嘆,該產品的受眾面很廣泛,包括了從學生到高級開發人員,再從愛探險的 java 愛好者到追求性能穩定的組織。java 採用了極簡主義理念,持續通過實例主要方法和隱式類來簡化編寫初始代碼的‘儀式’,讓大家可以更輕鬆地開始學習java。通過重塑構造器 (statements before super[…]),java 再次證明了其對負責任的創新的支持,在不破壞現有的代碼的情況下,放寬了自java 1.0 版本以來的語言約束,這一點非常令人興奮。intellij idea 2024.1 已準備好支持 java 22 的特性,以便 java 開發人員可以輕鬆使用這些功能。”
甲骨文公司企業雲原生java工程副總裁 tom snyder 表示:“虛擬線程一經發布,helidon 團隊就意識到了它們的價值。藉助 helidon 4,該團隊重寫了 helidon web 服務器,以原生使用虛擬線程,從而提高了性能和開發人員的生產力。有了 java 22,我們看到虛擬線程再一次實現了性能提升,讓所有 helidon 用戶都可以從顯著的進步中受益。”
oracle 產品管理總監 kuassi mensah 表示:“與java 創新的無縫集成正在幫助oracle 數據庫提供世界上先進的數據庫技術,用於開發和運行現代應用。oracle javadatabase connectivity (jdbc) 驅動程序已被重寫,可以無縫支持 java 虛擬線程。 java 虛擬線程與 oracle database 23c 中新的管道數據庫操作的結合有助於提高 java 應用程序端到端的可擴展性。”
(8615924)