close

作者 | Michael Redlich
譯者 | 平川
策劃 | 丁曉昀

JDK 18 是 JDK 17 之後第一個非 LTS 版本。按照甲骨文公司 Java 平台組首席架構師 Mark Reinhold 的說法,JDK 18 已進入初始候選發布階段。JDK 穩定庫分支已於 2021 年 12 月初從主幹源碼庫創建(Rampdown Phase One)。該分支定義了 JDK 18 的特性集。嚴重缺陷,如回歸或嚴重的功能問題,還可以解決,但必須通過 Fix-Request 流程審批。

最終的特性集包含 9 個新特性。這些以 JEP 形式出現的特性可以分為三類:核心 Java 庫、Java 工具和 Java 規範。我們對這些特性進行了研究,其中一些屬於四大 Java 項目——Amber、Loom、Panama 和 Valhalla——的範疇。這些項目旨在孵化一系列組件,通過策劃合併最終納入 JDK。

以下 7 項新特性可以歸入核心 Java 庫:

JEP 400:默認字符集 UTF-8(java.nio.charsets)

JEP 408:簡單 Web 服務器(java.net)

JEP 416:用方法手柄重新實現核心反射 (java.lang.reflect)

JEP 417:Vector API(三階段孵化)

JEP 418:網絡地址解析 SPI(java.net)

JEP 419:外部函數 & 內存 API(二階段孵化)

JEP 421:棄用 Finalization 以備刪除(java.lang)

其中兩項,JEP 417 和 JEP 419,為實現 Panama 項目提供了持續的貢獻。該項目旨在改進和完善 JVM 與明確定義的「外部」(即非 Java API,很可能包含 C 程序庫中常用的接口)之間的互操作性。Panama 項目於 2014 年啟動,由甲骨文軟件架構師 Maurizio Cimadamore 負責。其早期訪問構建基於 JDK 19 的一個不完整版本,最近一次更新是在 2022 年 1 月 18 日。

JEP 418 為實現 Loom 項目提供了持續的貢獻。該項目旨在探索、孵化和提供 Java VM 特性和 API,以支持易於使用、高吞吐量的新型輕量級並發編程模型。這將通過虛擬線程、定界延續(delimited continuations)和尾調用來完成。Loom 項目於 2018 年啟動,由甲骨文公司技術部門諮詢顧問 Ron Pressler 負責。其早期訪問構建基於 JDK 19 的早期訪問構建 Build 9,最近一次更新是在 2022 年 2 月 13 日。

剩下的兩個 JEP:

JEP 413:Java API 文檔中的代碼片段

該 JEP 屬於第二類 Java 工具,為 Oracle 的 Standard Doclet(就是那個有名的 Java API 文檔工具,默認生成 HTML 格式的輸出)引入了@snippet標籤。其目的是為了簡化 API 文檔中示例源代碼的收錄。

JEP 420:Switch 模式匹配(第二個預覽版)

該 JEP 屬於 Java 規範類,它為完成 Amber 項目做出了持續的貢獻。該項目旨在探索和孵化可以提高生產力的 Java 語言小特性。Amber 項目於 2017 年啟動,由甲骨文公司 Java 語言架構師 Brian Goetz 負責。

按照發布時間表,JDK 18 的正式發布日期是 2022 年 3 月 22 日。

JDK 19

按照計劃,JDK 19 將在 2022 年 9 月正式發布,當前該版本還沒有錨定任何 JEP。不過,根據最近的 JEP 草案、JEP 候選以及 Oracle Java 開發大使 Nicolai Parlog 的 Java 內部新聞播報(第 18 期) (Java 的 2022 計劃),我們可以推測出哪些 JEP 有可能被納入 JDK 19。

Valhalla 項目旨在探索和孵化 JVM 和 Java 語言高級候選特性。這包括值類型、泛型特化和關鍵字 volatile 增強。Valhalla 項目於 2014 年啟動,也是由 Brian Goetz 領導的。早期訪問構建最後更新是在 2019 年 8 月 30 日,目前還非常有限。不過,在過去的一年中,這個項目內的活動有所增加。

2022 年,Valhalla 項目計劃包括:值類(JEP 草案 8277163:值對象(預覽));原始類(JEP 401:原始類(預覽)和 JEP 402:基本原始類(預覽));通用泛型(JEP 草案 8261529:通用泛型(預覽))。要想了解更多關於 Valhalla 項目的信息,建議開發人員閱讀 Goetz 在 2021 年 12 月發表的三篇系列文章:

Valhalla 項目現狀第一部分:通往 Valhalla 之路

Valhalla 項目現狀第二部分:語言模型

Valhalla 項目現狀第三部分:JVM 模型

2022 年,Amber 項目的計劃包括:最終確定 switch 中的模式(可能是繼 JEP 420 和 JEP 406:switch 模式匹配(預覽版)(隨 JDK 17 交付)之後的第三個預覽版);引入更多的模式,如記錄 / 數組的解構(JEP 405:記錄模式(預覽版)),可能還有常規類。JEP 405 最初名為記錄模式 & 數組模式(預覽版),與 JEP 406 關係密切。

2022 年,Panama 項目的計劃包括:將當前正在孵化的外部 API 遷移到預覽版中;改進外部 API 的實現;決定jextract的未來,即它是否應該成為一個獨立的項目,並有一個相應的存儲庫;在 Valhalla 項目實現值類型和原始類型之前,暫緩 Vector API。JEP 草案 8280173:Vector API(四階段孵化),提議根據 Java 社區對之前三個 JEP 的反饋,引入增強功能。這三個 JEP 分別是:JEP 338:Vector API(孵化),隨 JDK 16 交付;JEP 414,Vector API(二階段孵化),隨 JDK 17 交付;JEP 417:Vecotr API(三階段孵化),將隨即將發布的 JDK 18 GA 版本交付。

2022 年,Loom 項目的計劃包括:完成 JEP 草案 8277131:虛擬線程(預覽版)和 JEP 草案 8277129:結構化並發(孵化);將這些特性併入 JDK 主庫;進一步探索如何簡化高並發應用程序調試,並進一步完善結構化並發。JEP 草案 8263012:作用域局部變量(Scope Locals(孵化器)),建議用作用域局部變量來增強 Java API,它們是作用域動態變化的 final 局部值。它們允許一種輕量級的線程繼承形式。

我們預計,甲骨文將很快圍繞 JDK 19 開展有關這些及其他 JEP 的工作。

作者簡介:

Michael Redlich 是位於新澤西州克林頓的埃克森美孚工程研究部門高級研究員(他在本文中的觀點和意見僅代表他自己,和他的僱主無關)。他是一名 IT 專業人士,擁有羅格斯大學計算機科學學士學位。自 2001 年以來,他一直是花園州 Java 用戶組(原 ACGNJ Java 用戶組)的主持人,同時也是一位經驗豐富的會議發言人,在加入 InfoQ 之前與 Barry Burd 合作撰寫了多篇文章。自 1989 年 12 月以來,作為埃克森公司和埃克森美孚公司的長期雇員,Mike 在公司中承擔了許多任務,包括汽車測試、從事利用紅外光譜學和化學計量學的分析科學研究、開發科學方面的 IT 應用,他目前的任務是從事利用流變學和聚合物物理學的高分子科學研究。在他的職業生涯中,Mike 發展了自己的領導能力,他曾擔任新澤西州業餘計算機小組(一個非營利性的 501(c)(3) 計算機教育組織)的主席,目前則擔任花園州 Java 用戶組(也是一個非營利性的 501(c)(3) 組織)的主管。Mike 是國際演講協會的成員,最近取得了高級溝通者銀牌證書。他酷愛跑步和騎行,完成了許多馬拉松比賽。Mike 與他的妻子 Rowena 居住在新澤西州弗萊明頓,他們在那裡共度美好時光,騎行或跑步,旅行的話,則主要是到洛杉磯的新奧爾良和里約熱內盧的新港。

原文鏈接:

https://www.infoq.com/news/2022/03/java-18-so-far/?

點擊底部閱讀原文訪問 InfoQ 官網,獲取更多精彩內容!

今日好文推薦

開源還有真假?Neo4j 起訴3家公司虛假宣傳開源勝訴

起家於俄羅斯的NGINX開源項目宣布禁俄,不知NGINX之父怎麼想?

Solid.js 就是我理想中的 React

騰訊看點和微視開始裁員;俄羅斯數據存儲告急;中文編寫的操作系統「火龍」被質疑抄襲 | Q資訊

點個在看少個 bug👇

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()