JDK18功能先知

JDK18功能先知

這個版本將是JavaSE平臺版本18的參考實現(xiàn),正如Java社區(qū)進程中JSR393所指定的那樣勇凭。

狀態(tài)

JDK18當前處于Rapdown one階段。整個功能集已凍結(jié)。針對此版本將不再添加JEPs。
這個穩(wěn)定版的jdk18是開源的馅而,同樣可以根據(jù)JDK發(fā)布流程(JEP 3)進行部分bug修復(fù)和后期增強。

新功能

  • JEP 400:UTF-8作為默認

    概述

    • 指定 UTF-8 作為標準 Java API 的默認字符集譬圣。通過此更改瓮恭,依賴于默認字符集的 API 將在所有實現(xiàn)、操作系統(tǒng)胁镐、區(qū)域設(shè)置和配置中保持一致偎血。

    目標

    • 當Java程序的代碼依賴于默認字符集時诸衔,使其更可預(yù)測和可移植盯漂。

    • 闡明標準JavaAPI在何處使用默認字符集。

    • 通過標準Java API對UTF-8進行標準化笨农,控制臺I/O除外就缆。

  • JEP 408:簡單Web服務(wù)器

    概述

    • 引入一個簡單的 Web 服務(wù)器。提供一個命令行工具谒亦,來啟動一個只提供靜態(tài)文件的最小網(wǎng)絡(luò)服務(wù)器竭宰,它沒有 CGI 或類似 servlet 的功能可用空郊。該工具用于原型設(shè)計、臨時編碼和測試目的切揭,尤其是在教學(xué)環(huán)境中狞甚。

    目標

    • 提供一個開箱即用的靜態(tài)HTTP文件服務(wù)器,具有簡單的設(shè)置和最少的功能廓旬。

    • 降低開發(fā)人員的激活能哼审,使JDK更容易接近。

    • 通過命令行提供一個默認實現(xiàn)孕豹,以及一個用于編程創(chuàng)建和自定義的小API涩盾。

  • JEP 413 :Java API文檔中添加Snippet代碼

    概述

    • 支持在 Java API 文檔中加入代碼片段。為 JavaDoc 的 Standard Doclet 引入一個 @snippet 標記励背,以簡化 API 文檔中嵌入示例源代碼的難度春霍。

    目標

    • 通過提供對源代碼片段的API訪問,促進源代碼片段的驗證叶眉。盡管正確性最終是作者的責任址儒,但javadoc和相關(guān)工具中增強的支持可以使其更容易實現(xiàn)。

    • 啟用現(xiàn)代樣式衅疙,例如語法高亮顯示离福,以及名稱與聲明的自動鏈接。

    • 為創(chuàng)建和編輯代碼段提供更好的IDE支持炼蛤。

  • JEP 416 :用方法句柄重新實現(xiàn)核心反射

    概述

    • 用方法句柄重新實現(xiàn)核心反射妖爷。在 java.lang.invoke 的方法句柄之上,重構(gòu) java.lang.reflect 的方法理朋、構(gòu)造函數(shù)和字段絮识,使用方法句柄處理反射的底層機制將減少 java.lang.reflect 和 java.lang.invoke 兩者的 API 維護和開發(fā)成本。
  • JEP 417 :Vector API(這里是矢量還是向量嗽上,不是很確定)

    概述

    • Vector API(第三孵化器)次舌。引入一個 API 來表達向量計算,這些計算在運行時可以編譯為支持的 CPU 架構(gòu)上的最佳向量指令兽愤,從而實現(xiàn)優(yōu)于等效標量計算的性能彼念。

    目標

    • 清晰簡潔的API - 該API應(yīng)能夠清晰簡潔地表達廣泛的向量計算,包括循環(huán)內(nèi)的向量操作序列浅萧,可能還有控制流逐沙。應(yīng)該可以表示關(guān)于向量大小或每個向量的車道數(shù)的通用計算,從而使此類計算能夠跨支持不同向量大小的硬件進行移植洼畅。

    • 平臺無關(guān) - API應(yīng)該是CPU架構(gòu)無關(guān)的吩案,支持在支持向量指令的多個架構(gòu)上實現(xiàn)。與Java API中的常見情況一樣帝簇,平臺優(yōu)化和可移植性之間存在沖突徘郭,因此偏向于使API可移植靠益,即使這會導(dǎo)致某些特定于平臺的習慣用法無法在可移植代碼中表達。

    • x64和AArch64體系結(jié)構(gòu)上的可靠運行時編譯和性能 - 在可運行Java的x64體系結(jié)構(gòu)上時残揉,特別是HotSpot C2編譯器胧后,應(yīng)將向量操作編譯為相應(yīng)的高效和性能向量指令,例如抱环,由數(shù)據(jù)流單指令多數(shù)據(jù)擴展指令集(SSE)和高級向量擴展指令集(AVX)支持的指令集绩卤。開發(fā)人員應(yīng)該確信他們所表達的向量操作將可靠地映射到相關(guān)向量指令。同樣江醇,在功能強大的ARM AArch64體系結(jié)構(gòu)上濒憋,C2將把向量操作編譯為NEON和SVE支持的向量指令。

    • 優(yōu)雅降級 - 有時向量計算不能在運行時完全表示為向量指令序列陶夜,可能是因為體系結(jié)構(gòu)不支持某些必需的指令凛驮。在這種情況下,向量API實現(xiàn)應(yīng)該優(yōu)雅地降級条辟,并且仍能正常工作黔夭。如果向量計算無法有效編譯為向量指令,則可能會發(fā)出警告羽嫡。在沒有向量的平臺上本姥,優(yōu)雅的降級將產(chǎn)生與手動展開環(huán)路競爭的代碼,其中展開因子是選定向量中的車道數(shù)杭棵。

  • JEP 418 :互特網(wǎng)地址解析

    概述

    • 互聯(lián)網(wǎng)地址解析 SPI婚惫。定義用于主機名和地址解析的服務(wù)提供者接口 (SPI),以便java.net.InetAddress可以使用平臺內(nèi)置解析器以外的解析器魂爪。
  • JEP 419 :外部函數(shù)和內(nèi)存API

    概述

    • 外部函數(shù)和內(nèi)存 API(第二孵化器)先舷。引入了一個新 API, Java 程序可以通過它與 Java 運行時之外的代碼和數(shù)據(jù)進行互操作。通過有效地調(diào)用外部函數(shù)(即 JVM 外的代碼)滓侍,并安全地訪問外部內(nèi)存(即不由 JVM 管理的內(nèi)存)蒋川,外部函數(shù)和內(nèi)存 API 使 Java 程序能夠調(diào)用本機庫并處理本機數(shù)據(jù),而不具有 JNI 的脆弱性和危險撩笆。

    目標

    • 易用性 - 用一個優(yōu)秀的純Java開發(fā)模型替換Java本機接口(JNI)捺球。

    • 性能 - 提供與現(xiàn)有API(如JNI和sun)相當(如果不是更好的話)的性能。非安全的夕冲。

    • 通用性 - 提供操作不同類型的外部存儲器(例如氮兵,本地內(nèi)存、持久內(nèi)存和托管堆內(nèi)存)的方法耘擂,并且隨著時間的推移胆剧,以適應(yīng)其他平臺(例如絮姆,32位x86)和用C以外的語言編寫的外部函數(shù)(例如醉冤,C++秩霍、FORTRAN)。

    • 安全 - 默認情況下禁用不安全操作蚁阳,僅在應(yīng)用程序開發(fā)人員或最終用戶明確選擇加入后才允許執(zhí)行這些操作铃绒。

  • JEP 420 : switch模式匹配

    概述

    • switch 模式匹配表達式。使用 switch 表達式和語句的模式匹配以及對模式語言的擴展來增強 Java 編程語言螺捐。將模式匹配擴展到 switch 允許針對多個模式測試表達式颠悬,每個模式都有特定的操作,可以簡潔安全地表達復(fù)雜的面向數(shù)據(jù)的查詢定血。

    目標

    • 通過允許模式出現(xiàn)在大小寫標簽中赔癌,擴展開關(guān)表達式和語句的表達能力和適用性。

    • 允許在需要時放寬switch的歷史空值澜沟。

    • 引入兩種新的模式:

      • <font color=deeppink>保護模式</font> - 允許使用任意布爾表達式灾票。細化模式匹配邏輯。
      • <font color=deeppink>括號模式</font> - 解決一些解析歧義茫虽。
    • 確保所有現(xiàn)有的switch表達式和語句繼續(xù)編譯而不做任何更改刊苍,并以相同的語義執(zhí)行。

    • 不要引入一個新的類似switch的表達式或語句濒析,該表達式或語句具有與傳統(tǒng)switch構(gòu)造分離的模式匹配語義正什。

    • 當大小寫標簽為模式時,不要使switch表達式或語句的行為與大小寫標簽為傳統(tǒng)常量時的行為不同号杏。

  • JEP 421 :棄用 Finalization 功能

    概述

    • 棄用 Finalization 功能婴氮。Java 1.0 中引入的 Finalization 旨在幫助避免資源泄漏問題,然而這個功能存在延遲不可預(yù)測盾致、行為不受約束莹妒,以及線程無法指定等缺陷,導(dǎo)致其安全性绰上、性能旨怠、可靠性和可維護性方面都存在問題,因此將其棄用蜈块,用戶可選擇遷移到其他資源管理技術(shù)鉴腻,例如try-with-resources 語句和清潔器。

    目標

    • 幫助開發(fā)人員了解最終確定的危險百揭。

    • 讓開發(fā)人員做好準備爽哎,以便在將來的Java版本中刪除。

    • 提供簡單的工具來幫助檢測對定稿的依賴器一。

* 官方相關(guān)資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末课锌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渺贤,老刑警劉巖雏胃,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異志鞍,居然都是意外死亡瞭亮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門固棚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來统翩,“玉大人,你說我怎么就攤上這事此洲〕Ш梗” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵呜师,是天一觀的道長面徽。 經(jīng)常有香客問我,道長匣掸,這世上最難降的妖魔是什么趟紊? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮碰酝,結(jié)果婚禮上霎匈,老公的妹妹穿的比我還像新娘。我一直安慰自己送爸,他們只是感情好铛嘱,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袭厂,像睡著了一般墨吓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纹磺,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天帖烘,我揣著相機與錄音,去河邊找鬼橄杨。 笑死秘症,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的式矫。 我是一名探鬼主播乡摹,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼采转!你這毒婦竟也來了聪廉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎板熊,沒想到半個月后框全,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡邻邮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年竣况,在試婚紗的時候發(fā)現(xiàn)自己被綠了克婶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筒严。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖情萤,靈堂內(nèi)的尸體忽然破棺而出鸭蛙,到底是詐尸還是另有隱情,我是刑警寧澤筋岛,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布娶视,位于F島的核電站,受9級特大地震影響睁宰,放射性物質(zhì)發(fā)生泄漏肪获。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一柒傻、第九天 我趴在偏房一處隱蔽的房頂上張望孝赫。 院中可真熱鬧,春花似錦红符、人聲如沸青柄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽致开。三九已至,卻和暖如春萎馅,著一層夾襖步出監(jiān)牢的瞬間双戳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工糜芳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拣技,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓耍目,卻偏偏與公主長得像膏斤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子邪驮,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容