甲骨文公司 Java 平臺(tái)高級(jí)副總裁兼 OpenJDK 管理委員會(huì)主席 Georges Saab 表示:“Java 22 新的增強(qiáng)功能讓更多開(kāi)發(fā)人員能夠快速、輕松地構(gòu)建和交付功能豐富、可擴(kuò)展且安全的應(yīng)用,從而幫助全球各地的組織發(fā)展業(yè)務(wù)。這些增強(qiáng)功能可以簡(jiǎn)化應(yīng)用開(kāi)發(fā),擴(kuò)大 Java 的覆蓋范圍,以供不同技術(shù)水平的開(kāi)發(fā)人員訪問(wèn),幫助組織和開(kāi)發(fā)人員創(chuàng)建各種新的應(yīng)用和服務(wù)?!?/p>

全新版本的 JDK 更新和改進(jìn)了 12 項(xiàng)JDK 增強(qiáng)建議 (JEPs) 。JDK 22 將提供OpenJDK Project Amber 的語(yǔ)言改進(jìn)(Statements before super[…]、Unnamed Variables & Patterns、String Templates 以及 Implicitly Declared Classes 和 Instance Main Methods);Project Panama 的改進(jìn)(Foreign Function 以及 Memory API 和 Vector API);有關(guān) Project Loom 的特性(Structured Concurrency 和 Scoped Values);核心庫(kù)和工具功能(Class-File API、Launch Multi-File Source-Code Programs、Stream Gatherers)以及性能更新(Region Pinning for G1)。

IDC 軟件開(kāi)發(fā)研究副總裁 Arnal Dayaratna 表示:“經(jīng)過(guò)近三十年發(fā)展,Java 能夠支持各種用例的復(fù)雜開(kāi)發(fā)任務(wù),這種能力讓該平臺(tái)變得十分重要。Java 的多功能性和全面的工具集使其能夠大規(guī)模支持生產(chǎn)級(jí)關(guān)鍵任務(wù)應(yīng)用的開(kāi)發(fā),因此成為了生成式 AI 等創(chuàng)新用例的關(guān)鍵支持技術(shù)?!?/p>

Java 22 提供的重要更新包括:

Project Amber 的特性

· JEP 447:Statements before super(…) — 支持開(kāi)發(fā)人員自由地表達(dá)構(gòu)造器的行為。對(duì)于未引用正在創(chuàng)建的實(shí)例的語(yǔ)句,該語(yǔ)句也可以在調(diào)用顯式構(gòu)造器之前出現(xiàn),讓開(kāi)發(fā)人員可以更自然地放置邏輯。該邏輯需要納入輔助靜態(tài)方法、輔助中間構(gòu)造器或構(gòu)造器參數(shù)中。該特性還將延續(xù)現(xiàn)有保證,即允許構(gòu)造器在類(lèi)實(shí)例化期間按自上而下的順序運(yùn)行,以幫助確保子類(lèi)構(gòu)造器中的代碼不會(huì)干擾超類(lèi)實(shí)例化。此外,此特性不需要對(duì) Java Virtual Machine (JVM) 進(jìn)行任何更改,并且僅依賴(lài)于 JVM 的當(dāng)前能力來(lái)驗(yàn)證和執(zhí)行在構(gòu)造器中顯式調(diào)用之前顯示的代碼。

· JEP 456:Unnamed Variables & Patterns — 通過(guò)未命名的變量和模式來(lái)增強(qiáng) Java 語(yǔ)言。在必須使用變量聲明或嵌套模式,但又從未使用過(guò)的情況下,開(kāi)發(fā)人員可以使用這些變量和模式來(lái)提高生產(chǎn)力。這種方法可以減少出錯(cuò)的機(jī)會(huì),提高記錄模式的可讀性,并提高代碼的可維護(hù)性。

· JEP 459:String Templates(第二預(yù)覽版)— 使包含運(yùn)行時(shí)計(jì)算值的字符串更容易表達(dá),簡(jiǎn)化 Java 程序的開(kāi)發(fā)工作,同時(shí)提高將用戶(hù)提供的值編寫(xiě)成字符串,并將字符串傳遞給其他系統(tǒng)的程序的安全性。此外,該特性還可提高參雜了表達(dá)式和文本的可讀性,創(chuàng)建通過(guò)文字文本和嵌入表達(dá)式計(jì)算的非字符串值,而無(wú)需通過(guò)中間字符串表示形式傳遞。

· JEP 463:Implicitly Declared Classes and Instance Main Methods(第二預(yù)覽版)— 通過(guò) Java 編程入門(mén)教程,學(xué)生無(wú)需了解為大型程序而設(shè)計(jì)的語(yǔ)言功能,即可順利編寫(xiě)第一個(gè)程序,加快了上手速度。通過(guò)此特性,教育工作者可以循序漸進(jìn)地介紹概念,學(xué)生也可以編寫(xiě)簡(jiǎn)化的單類(lèi)程序聲明,并隨著個(gè)人技能的提升,無(wú)縫擴(kuò)展程序并使用更高級(jí)的功能。

Project Loom 的特性

· JEP 462:Structured Concurrency(第二預(yù)覽版)— 通過(guò)引入用于結(jié)構(gòu)化并發(fā)的 API,幫助開(kāi)發(fā)人員簡(jiǎn)化錯(cuò)誤處理和取消,并提高可觀測(cè)性,進(jìn)而鼓勵(lì)更多人選擇并發(fā)編程。該編程風(fēng)格可以消除因取消和關(guān)閉而產(chǎn)生的常見(jiàn)風(fēng)險(xiǎn),例如線程泄漏和取消延遲,以此提高并發(fā)代碼的可觀測(cè)性。

· JEP 464:Scoped Values(第二預(yù)覽版)— 支持開(kāi)發(fā)人員在線程內(nèi)和線程之間共享不可變數(shù)據(jù),從而提高項(xiàng)目的易用性、可理解性、性能和穩(wěn)健性。

Project Panama 的特性

· JEP 454: Foreign Function & Memory API — 新推出的 API 使 Java 程序更容易與 Java 運(yùn)行時(shí)之外的代碼和數(shù)據(jù)互操作,從而幫助開(kāi)發(fā)人員提高易用性、靈活性、安全性和性能。通過(guò)有效調(diào)用外部函數(shù)(即 Java Virtual Machine (JVM) 之外的代碼),以及安全地訪問(wèn)外部?jī)?nèi)存(即不受 JVM 管理的內(nèi)存),這個(gè)新的 API 支持 Java 程序在無(wú)需 Java Native Interface 的情況下調(diào)用本地庫(kù)和處理原生數(shù)據(jù)。

· JEP 460:Vector API (七次孵化階段)— 引入 API來(lái)表達(dá)向量計(jì)算,在運(yùn)行時(shí)可靠地編譯為支持的 CPU 架構(gòu)上的向量指令,使開(kāi)發(fā)人員獲得優(yōu)于等效標(biāo)量計(jì)算的性能。

核心庫(kù)和工具功能

· JEP 457:Class-File API(預(yù)覽版)— 通過(guò)提供用于解析、生成和轉(zhuǎn)換 Java 類(lèi)文件的標(biāo)準(zhǔn) API,幫助開(kāi)發(fā)人員提高工作效率。

· JEP 458:Launch Multi-File Source-Code Programs — 支持開(kāi)發(fā)人員通過(guò)增強(qiáng) Java 應(yīng)用啟動(dòng)器,選擇是否以及何時(shí)需要配置構(gòu)建工具,從而運(yùn)行作為多個(gè) Java 源代碼文件提供的程序。

· JEP 461:Stream Gatherers(預(yù)覽版)— 通過(guò)增強(qiáng) Stream API 來(lái)支持自定義中間操作,讓流管道能以比現(xiàn)有內(nèi)置中間操作更輕松的方式轉(zhuǎn)換數(shù)據(jù),從而幫助開(kāi)發(fā)人員提高工作效率。此特性能夠使流管道更靈活、更具表達(dá)力,允許自定義中間操作處理大小不限的流,幫助開(kāi)發(fā)人員高效讀取、寫(xiě)入和維護(hù) Java 代碼。

性能更新

· JEP 423:Region Pinning for G1 — 在原本需要暫停收集器的本機(jī)庫(kù)調(diào)用期間,允許進(jìn)行某些資源回收,有助于減少延遲。其中的原理是,在本機(jī)庫(kù)調(diào)用期間,對(duì)需要禁止的對(duì)象以及僅“固定”包含這些對(duì)象的區(qū)域進(jìn)行跟蹤。如此一來(lái),即使是在原本會(huì)禁止本機(jī)庫(kù)調(diào)用的期間,未固定的區(qū)域也可以繼續(xù)正常進(jìn)行資源回收。

Java 22 是 Oracle 與全球 Java 開(kāi)發(fā)人員社區(qū)成員通過(guò) OpenJDK 社區(qū) 和 Java Community Process (JCP) 共同合作的成果。Java 22 除了推出了新的增強(qiáng)功能和特性,也獲得 Java Management Service (JMS) 的支持,這是一項(xiàng)新的 Oracle 云基礎(chǔ)設(shè)施遠(yuǎn)程軟件服務(wù)(Oracle Cloud Infrastructure, OCI) 原生服務(wù),提供統(tǒng)一的控制臺(tái)和儀表盤(pán),幫助企業(yè)管理本地或云端的 Java 運(yùn)行時(shí)和應(yīng)用。有關(guān) Java 22 特性的更多信息,請(qǐng)閱讀 Java 22 技術(shù)博客文章。

云技術(shù)創(chuàng)新賦能全球 Java 生態(tài)系統(tǒng)

OCI 是率先支持 Java 22 的超大規(guī)模云技術(shù)之一,部署在 OCI 中的 Java 可提供出色的性能、效率和創(chuàng)新。通過(guò)在 OCI 上免費(fèi)提供 Oracle Java SE、Oracle GraalVM 和 Java SE Subscription Enterprise Performance Pack,Java 22 助力開(kāi)發(fā)人員構(gòu)建和部署速度更快、更出色且優(yōu)化性?xún)r(jià)比的應(yīng)用。

Oracle Java Universal SE Subscription 是一個(gè)按量計(jì)費(fèi)產(chǎn)品,可為客戶(hù)提供優(yōu)秀的支持服務(wù)。該產(chǎn)品提供對(duì)整個(gè) Java 產(chǎn)品組合的支持、GraalVM 授權(quán)、Java SE Subscription Enterprise Performance Pack、Java Management Service 增強(qiáng)功能以及按業(yè)務(wù)計(jì)劃進(jìn)行升級(jí)的靈活性,有助于 IT 組織管理復(fù)雜性、控制成本并降低安全風(fēng)險(xiǎn)。

JavaOne 將于 2025 年回歸

全球 Java 社區(qū)的旗艦活動(dòng) JavaOne 將于 2025 年重返美國(guó)舊金山灣區(qū)。JavaOne 2025 將于 2025 年 3 月 17 日至 20 日在加利福尼亞州紅木海岸舉行,參會(huì)者將有機(jī)會(huì)了解Java 開(kāi)發(fā)并與 Oracle 的 Java 專(zhuān)家和行業(yè)人士互動(dòng)。欲了解更多信息,請(qǐng)?jiān)L問(wèn)Inside Java 博客文章。

TJC 社區(qū)負(fù)責(zé)人 Evren Tan 表示:“在 Türkiye Java Community (TJC) 的動(dòng)態(tài)生態(tài)系統(tǒng)中,Oracle 的持續(xù)支持推動(dòng)了我們的發(fā)展。隨著 Java 22 的推出,我們可以使用一系列的現(xiàn)代化功能,進(jìn)一步提高開(kāi)發(fā)人員效率,加強(qiáng)我們對(duì)在土耳其發(fā)展 Java 技術(shù)的承諾。我們也歡迎全球的 Java 開(kāi)發(fā)人員參加 TJC 的活動(dòng),共同培養(yǎng)友好的社區(qū)精神,助力 Java 蓬勃發(fā)展?!?/p>

xHub 創(chuàng)始人兼首席信息官 Badr El Hourari 表示:“Java 將作為一種熱門(mén)的編程語(yǔ)言、平臺(tái)和開(kāi)發(fā)人員社區(qū),在摩洛哥和非洲地區(qū)持續(xù)發(fā)展。在 Java 22 中,我很高興看到 Oracle Java 團(tuán)隊(duì)專(zhuān)注于創(chuàng)新,通過(guò) JEP 463 等增強(qiáng)功能幫助新的開(kāi)發(fā)人員更快地上手 Java。對(duì)新一代程序員來(lái)說(shuō),經(jīng)過(guò)簡(jiǎn)化后的 Java 語(yǔ)言降低了門(mén)檻。同時(shí),在摩洛哥,我們將在年度 Devoxx 摩洛哥會(huì)議上繼續(xù)強(qiáng)調(diào) Java 的重要性,歡迎所有開(kāi)發(fā)人員踴躍參加今年10月2-4日的活動(dòng),聽(tīng) Java 社區(qū)中的全球高影響力人物分享真知灼見(jiàn)。”

JetBrains 的 Java 開(kāi)發(fā)人員倡導(dǎo)者 Mala Gupta 表示:“Java 22 捆綁包特性讓我感到驚嘆,該產(chǎn)品的受眾面很廣泛,包括了從學(xué)生到高級(jí)開(kāi)發(fā)人員,再?gòu)膼?ài)探險(xiǎn)的 Java 愛(ài)好者到追求性能穩(wěn)定的組織。Java 采用了極簡(jiǎn)主義理念,持續(xù)通過(guò)實(shí)例主要方法和隱式類(lèi)來(lái)簡(jiǎn)化編寫(xiě)初始代碼的‘儀式’,讓大家可以更輕松地開(kāi)始學(xué)習(xí) Java。通過(guò)重塑構(gòu)造器 (statements before super[…]),Java 再次證明了其對(duì)負(fù)責(zé)任的創(chuàng)新的支持,在不破壞現(xiàn)有的代碼的情況下,放寬了自 Java 1.0 版本以來(lái)的語(yǔ)言約束,這一點(diǎn)非常令人興奮。IntelliJ IDEA 2024.1 已準(zhǔn)備好支持 Java 22 的特性,以便 Java 開(kāi)發(fā)人員可以輕松使用這些功能?!?/p>

甲骨文公司企業(yè)云原生Java工程副總裁 Tom Snyder 表示:“虛擬線程一經(jīng)發(fā)布,Helidon 團(tuán)隊(duì)就意識(shí)到了它們的價(jià)值。借助 Helidon 4,該團(tuán)隊(duì)重寫(xiě)了 Helidon Web 服務(wù)器,以原生使用虛擬線程,從而提高了性能和開(kāi)發(fā)人員的生產(chǎn)力。有了 Java 22,我們看到虛擬線程再一次實(shí)現(xiàn)了性能提升,讓所有 Helidon 用戶(hù)都可以從顯著的進(jìn)步中受益?!?/p>

Oracle 產(chǎn)品管理總監(jiān) Kuassi Mensah 表示:“與Java 創(chuàng)新的無(wú)縫集成正在幫助 Oracle 數(shù)據(jù)庫(kù)提供世界上先進(jìn)的數(shù)據(jù)庫(kù)技術(shù),用于開(kāi)發(fā)和運(yùn)行現(xiàn)代應(yīng)用。Oracle Java Database Connectivity (JDBC) 驅(qū)動(dòng)程序已被重寫(xiě),可以無(wú)縫支持 Java 虛擬線程。 Java 虛擬線程與 Oracle Database 23c 中新的管道數(shù)據(jù)庫(kù)操作的結(jié)合有助于提高 Java 應(yīng)用程序端到端的可擴(kuò)展性?!?/p>

分享到

zhupb

相關(guān)推薦