Oracle推出Java 21,擴(kuò)展支持路線圖
瀏覽量: 次 發(fā)布日期:2023-10-17 20:43:50
Oracle推出Java 21,擴(kuò)展支持路線圖
Oracle 正式發(fā)布 Java 21,這是備受歡迎的編程語言和開發(fā)平臺(tái)推出的全新版本。Java 21 (Oracle JDK 21) 在性能、穩(wěn)定性和安全性方面進(jìn)行了諸多改進(jìn),包括進(jìn)一步優(yōu)化平臺(tái)的增強(qiáng)功能,以幫助開發(fā)人員提高工作效率,推動(dòng)企業(yè)創(chuàng)新。
Java 21亮相甲骨文全球云大會(huì),提供15個(gè)JDK增強(qiáng)建議,可有效改善Java語言并增強(qiáng)平臺(tái)的性能、穩(wěn)定性和安全性
甲骨文公司 Java 平臺(tái)開發(fā)高級(jí)副總裁兼 OpenJDK Governing Board 主席 Georges Saab 表示:“Java 一直是全球企業(yè)乃至數(shù)百萬名個(gè)人用戶所選擇的語言和平臺(tái),賦予開發(fā)人員構(gòu)建新一代強(qiáng)大、可擴(kuò)展且安全的應(yīng)用的能力。Java 21 全新的增強(qiáng)功能可支持開發(fā)人員更快地構(gòu)建應(yīng)用。此外,商業(yè)支持有至少八年,客戶能夠按照自己的步伐進(jìn)行遷移?!?/p>
全新版本的 Java 開發(fā)工具包 (JDK) 提供 15 個(gè) JDK 增強(qiáng)建議 (JEPs) 的更新和改進(jìn)。JDK 21 將提供來自 OpenJDK Project Amber 的語言改進(jìn)(String Templates、Record Patterns、Pattern Matching for Switch、Unnamed Patterns and Variables 以及Unnamed Classes 和 Instance Main Methods);來自 Project Panama 的增強(qiáng)功能(Foreign Function 和 Memory API 以及 Vector API);有關(guān) Project Loom的功能(Virtual Threads、Scoped Values 和 Structured Concurrency);以及維護(hù)和棄用功能(Deprecate the 32-bit x86 Port for Removal 以及 Prepare to Disallow the Dynamic Loading of Agents)。
RedMonk 首席分析師兼聯(lián)合創(chuàng)始人 Stephen O'Grady 表示:“現(xiàn)在,盡管市面上有那么多流通的語言,但 Java 仍然無處不在。隨著世界的發(fā)展,Java 的適應(yīng)能力將發(fā)揮重要作用,繼續(xù)為開發(fā)人員提供價(jià)值?!?/p>
Oracle 將為 Java 21 提供至少八年的長(zhǎng)期支持。延長(zhǎng)支持期可為企業(yè)提供一定的靈活性,在將應(yīng)用保留在生產(chǎn)環(huán)境中時(shí)盡可能減少維護(hù)工作量,并按企業(yè)自己的方式來進(jìn)行遷移。根據(jù)客戶反饋和 Java 生態(tài)系統(tǒng)中的使用情況,Oracle 決定將 Java 11 長(zhǎng)期支持延長(zhǎng)至 2032 年 1 月,這意味著支持和更新服務(wù)時(shí)間增加了至少 8 年。
Java 21 提供的重要更新包括:
Project Loom 的功能
· JEP 444:Virtual Threads — 通過向 Java 平臺(tái)引入輕量級(jí)虛擬線程,顯著減少編寫、維護(hù)和觀察高吞吐量并發(fā)應(yīng)用的工作量。虛擬線程讓開發(fā)人員可以輕松使用現(xiàn)有的 JDK 工具和技術(shù),對(duì)并發(fā)應(yīng)用進(jìn)行故障排除、調(diào)試、分析以及擴(kuò)展,進(jìn)而加快應(yīng)用開發(fā)速度。
· JEP 446:Scoped Values(預(yù)覽版)— 支持用戶在線程內(nèi)和跨線程共享不可變數(shù)據(jù)。這可提高開發(fā)項(xiàng)目的易用性全面性、可靠性和性能。
· JEP 453:Structured Concurrency(預(yù)覽版)— 通過引入結(jié)構(gòu)化并發(fā)的 API 來簡(jiǎn)化并發(fā)編程,有助于推廣并發(fā)編程風(fēng)格,消除取消和關(guān)閉所帶來的常見風(fēng)險(xiǎn)(例如線程泄漏和取消延遲),并提高并發(fā)代碼的可觀測(cè)性。這可幫助開發(fā)人員簡(jiǎn)化錯(cuò)誤處理和取消工作,并提高可靠性和可觀測(cè)性。陸家嘴數(shù)據(jù)恢復(fù)
性能更新
· JEP 439:Generational ZGC — 擴(kuò)展 Z Garbage Collector (ZGC) 來區(qū)分新舊對(duì)象的層代,以提高應(yīng)用性能。GenerationalZGC 可以減少應(yīng)用所需的堆內(nèi)存和垃圾收集 CPU 的間接費(fèi)用,并降低分配停滯的風(fēng)險(xiǎn),有助于提高開發(fā)人員的工作效率。
宿遷數(shù)據(jù)恢復(fù)語言更新和改進(jìn)
· JEP 430:String Templates(預(yù)覽版)— 通過使包含運(yùn)行時(shí)計(jì)算值的字符串更容易表達(dá),簡(jiǎn)化 Java 程序的開發(fā)工作,并提高將用戶提供的值編寫成字符串,并將字符串傳遞給其他系統(tǒng)的程序的安全性。此外,該特性還可增強(qiáng)參雜了表達(dá)式和文本的表達(dá)式的可讀性,創(chuàng)建通過文字文本和嵌入表達(dá)式計(jì)算的非字符串值,而無需通過中間字符串表示形式傳遞。通過提高 Java 語言的可讀性、可寫性和可維護(hù)性,開發(fā)人員的工作效率也將隨之提升。
· JEP 440: Record Patterns(第三預(yù)覽版)— 擴(kuò)展模式匹配以解構(gòu)記錄類的實(shí)例,并支持添加嵌套模式,以此增強(qiáng) Java 語言。這有助于開發(fā)人員擴(kuò)展模式匹配,以實(shí)現(xiàn)更復(fù)雜和可定制的數(shù)據(jù)查詢,從而提高工作效率。
· JEP 441:Pattern Matching for Switch — 支持在案例標(biāo)簽中顯示模式,進(jìn)而增強(qiáng) switch 表達(dá)式和語句的表達(dá)性和適用性。此外,要求模式switch 語句包含所有可能的輸入值,以提高 switch 語句的安全性;確保所有現(xiàn)有的 switch 表達(dá)式和語句都可以繼續(xù)編譯而不進(jìn)行任何更改,并使用相同的語義執(zhí)行。這將使 Java 語言更加語義化,以簡(jiǎn)潔、安全的方式表達(dá)面向數(shù)據(jù)的復(fù)雜查詢,有助于開發(fā)人員簡(jiǎn)化項(xiàng)目并提高項(xiàng)目的可靠性。
· JEP 443:Unnamed Patterns and Variables(第三預(yù)覽版)— 啟用未命名模式,無需設(shè)置組件的名稱或類型即可匹配記錄組件,并支持可初始化但未被使用的未命名變量,以此增強(qiáng)Java 語言。這有助于提高記錄模式的可讀性以及所有代碼的可維護(hù)性,進(jìn)而簡(jiǎn)化開發(fā)過程。
· JEP 445:Unnamed Classes and Instance Main Methods(預(yù)覽版)— 簡(jiǎn)化并提高 Java 語言的可訪問性,讓教育工作者可以循序漸進(jìn)地講解編程的概念。避免向初學(xué)者介紹不同的 Java 方言和工具鏈,并使用支持任何 Java 程序的工具來整合和運(yùn)行學(xué)生程序,進(jìn)而幫助學(xué)生以簡(jiǎn)潔的方式編寫基礎(chǔ)程序,并隨著技能的提升,寫出更好的代碼。學(xué)生開發(fā)人員無需了解為大型程序設(shè)計(jì)的語言功能,即可編寫他們的第一個(gè)程序,提高了工作效率。
Project Panama 預(yù)覽版特性
· JEP 442: Foreign Function & Memory API(第三預(yù)覽版)— 新推出的 API 使Java 程序更容易與 Java 運(yùn)行時(shí)之外的代碼和數(shù)據(jù)進(jìn)行互操作。通過有效調(diào)用外部函數(shù)(即 Java Virtual Machine [JVM] 之外的代碼),以及安全地訪問外部?jī)?nèi)存(即不受JVM 管理的內(nèi)存),這個(gè)新的 API 支持 Java 程序在無需 Java Native Interface 的情況下調(diào)用本地庫和處理原生數(shù)據(jù),從而為開發(fā)人員提高了易用性、靈活性、性能和安全性。
· JEP 448:Vector API (六次孵化階段)— 新推出的 API 允許以一種在運(yùn)行時(shí),可靠地編譯為支持的 CPU 架構(gòu)上的向量指令方式表達(dá)向量計(jì)算,為開發(fā)人員提供能夠清晰和簡(jiǎn)潔地表達(dá)各種矢量計(jì)算的API,進(jìn)而提高項(xiàng)目性能。
Java 21 是Oracle 工程師與全球 Java 開發(fā)人員社區(qū)成員通過 OpenJDK 社區(qū) 和 Java Community Process (JCP) 共同合作的成果。Java21 除了推出了新的增強(qiáng)功能,也獲得 Java Management Service (JMS) 的支持,這是一項(xiàng)新的 Oracle 云基礎(chǔ)設(shè)施遠(yuǎn)程軟件服務(wù)(Oracle Cloud Infrastructure, OCI)原生服務(wù),提供統(tǒng)一的控制臺(tái)和儀表盤,幫助企業(yè)管理本地或云端的 Java 運(yùn)行時(shí)和應(yīng)用程序。
云技術(shù)創(chuàng)新賦能全球 Java 生態(tài)系統(tǒng)
部署在 OCI 中的 Java 可提供出色的性能、效率和創(chuàng)新,而 OCI 也是率先支持 Java21 的大規(guī)模云技術(shù)平臺(tái)。通過在 OCI 上運(yùn)行 Java,企業(yè)上下都可以享有優(yōu)勢(shì),包括降低運(yùn)營成本,無需支付額外費(fèi)用即可提高性能,以及對(duì)現(xiàn)有 Java 應(yīng)用進(jìn)行現(xiàn)代化或利用新的特性和功能來構(gòu)建新應(yīng)用。OracleJava SE、Oracle Graal VM 和 Java SE Subscription Enterprise Performance Pack 通過OCI 免費(fèi)為客戶提供服務(wù),助力開發(fā)人員構(gòu)建和部署速度更快、更出色且經(jīng)過優(yōu)化的應(yīng)用。
Oracle Java Universal SE Subscription 是一種按量計(jì)費(fèi)產(chǎn)品,為客戶提供優(yōu)質(zhì)的服務(wù),包括對(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)。
全球 Java 社區(qū)喜迎 Java 21
Agile Developer創(chuàng)始人 Venkat Subramaniam 博士表示:“Java21 是 Java 非常重要的版本之一,虛擬線程將改變我們開發(fā)和部署異步應(yīng)用的方式,其中包括從微服務(wù)到企業(yè)應(yīng)用。開發(fā)人員只需進(jìn)行少量的編碼工作,就可以擴(kuò)展所開發(fā)的應(yīng)用,以支持大量IO 操作和服務(wù)調(diào)用,并且不會(huì)產(chǎn)生不當(dāng)?shù)馁Y源需求。對(duì)于在生產(chǎn)環(huán)境中依賴 Java 的企業(yè)而言,能夠以更低的成本擴(kuò)展規(guī)模是一大優(yōu)勢(shì)?!?/p>
美國德魯大學(xué)(Drew University)教授 Barry Burd 表示:“我對(duì) Java21 中的 'Unnamed Classes and Instance Main Methods' 預(yù)覽功能感到很激動(dòng)。在我的概況課程中,學(xué)生可以快速、輕松地開始學(xué)習(xí)。在我的書中,我可以提供完整的例子,而不是樣板代碼。特別是這些新功能與Java 的總體設(shè)計(jì)理念相呼應(yīng)。未命名的類將加入未命名的程序包和模塊表的行列,而且還可以向后兼容?!?/p>
Java Champion 獲獎(jiǎng)?wù)?Jeanne Boyarsky 表示:“Java 21 的順序集合 (sequenced collections) 功能,對(duì)開發(fā)人員社區(qū)而言是重要的補(bǔ)充。開發(fā)人員再也不需要擔(dān)心依賴JUnit 測(cè)試中的出現(xiàn)順序 (encounter order),他們只需在構(gòu)建服務(wù)器、升級(jí)或其他地方尋找問題源頭。順序集合將能夠定義順序— 這意味著不會(huì)出現(xiàn)意外狀況?!?/p>
Java Playground 和社區(qū)貢獻(xiàn)合力擴(kuò)展 Dev.java
Dev.java 是面向 Java 開發(fā)人員的官方網(wǎng)站。Oracle 將在內(nèi)容目錄中再添加 Java Playground 和新的社區(qū)貢獻(xiàn)。
Java Playground 是一個(gè)在線沙盒,無需本地運(yùn)行時(shí)或 IDE 即可鍵入和運(yùn)行小型Java 代碼片段。現(xiàn)在,開發(fā)人員可以通過瀏覽器,快速試用由 OCI 提供支持的 Java 21 中的新功能。
Dev.java 提供了由Oracle Java 團(tuán)隊(duì)精心準(zhǔn)備的數(shù)百個(gè)高質(zhì)量 Java 教程,適合所有技能級(jí)別的開發(fā)人員。Dev.java 也通過 Java GitHub 組織內(nèi)部一個(gè)新的公共存儲(chǔ)庫接受社區(qū)貢獻(xiàn)。
開發(fā)人員可以享有眾多業(yè)界名人的社區(qū)貢獻(xiàn),其中包括 Venkat Subramaniam 博士、Cay Horstmann、Jeanne Boyarsky、Heinz Kabutz、Paul Anderson 以及 Gail Anderson 等人。
. oracle11g修復(fù),Oracle 11g TNS-12545錯(cuò)誤排查與修復(fù)指南
. oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù),Oracle數(shù)據(jù)庫數(shù)據(jù)恢復(fù)策略與實(shí)戰(zhàn)指南
. oracle數(shù)據(jù)文件損壞 怎么恢復(fù),全面解析與實(shí)操步驟
. oracle數(shù)據(jù)庫收費(fèi)標(biāo)準(zhǔn),全面了解授權(quán)模式與費(fèi)用構(gòu)成
. oracle數(shù)據(jù)庫官網(wǎng),深入探索Oracle數(shù)據(jù)庫官網(wǎng)——您的數(shù)據(jù)庫學(xué)習(xí)與資源寶庫
. oracle快照恢復(fù)數(shù)據(jù),高效的數(shù)據(jù)保護(hù)與恢復(fù)策略
. oracle數(shù)據(jù)庫導(dǎo)入dmp,Oracle數(shù)據(jù)庫導(dǎo)入dmp文件詳解
. oracle數(shù)據(jù)庫基本知識(shí),Oracle數(shù)據(jù)庫簡(jiǎn)介
. oracle誤刪除數(shù)據(jù)恢復(fù),Oracle數(shù)據(jù)庫誤刪除數(shù)據(jù)恢復(fù)指南
. oracle許可只能找oracle買嗎,是否只能從Oracle官方購買?
. oracle收費(fèi)標(biāo)準(zhǔn),Oracle收費(fèi)標(biāo)準(zhǔn)的全面解析
. 如何使用 Oracle 環(huán)境變量,什么是 Oracle 環(huán)境變量
. oracle刪除的數(shù)據(jù)怎么恢復(fù),Oracle數(shù)據(jù)庫中刪除數(shù)據(jù)后的恢復(fù)方法詳解
. oracle誤刪數(shù)據(jù)怎么恢復(fù),Oracle誤刪數(shù)據(jù)恢復(fù)指南
. oracle數(shù)據(jù)庫免費(fèi)版區(qū)別,XE版與其他版本的差異
. oracle常見故障,Oracle數(shù)據(jù)庫常見故障解析及應(yīng)對(duì)策略
. oracle刪除主鍵約束,Oracle數(shù)據(jù)庫中刪除主鍵約束的詳細(xì)指南
. oracle連接數(shù)據(jù)庫,Oracle數(shù)據(jù)庫連接詳解
. oracle客戶端環(huán)境配置,系統(tǒng)要求