JDK18即Java SE Development Kit 18是開發(fā)JAVA必備的工具包,Oracle 官方發(fā)布了 JDK 18 / Java 18 正式版。在性能、穩(wěn)定性和安全性上面,Java 18 得到了全面的改進(jìn)提升,其中包括對平臺的九項 JDK 增強(qiáng)(JEP),大大提升了開發(fā)人員的工作效率。
JDK18改進(jìn):
JDK 改進(jìn)
默認(rèn)編碼為 UTF-8
將 UTF-8 設(shè)置為標(biāo)準(zhǔn) Java API 的默認(rèn)字符集。通過此更改,依賴于默認(rèn)字符集的 API 將在所有實現(xiàn)、操作系統(tǒng)、語言環(huán)境和配置中保持一致。
Simple Web Server
一個命令行工具和 API,用于啟動僅提供靜態(tài)文件的最小 Web 服務(wù)器。可用于原型設(shè)計、臨時編碼和測試目的,尤其是在教育環(huán)境中。
用方法句柄(Method Handles)重新實現(xiàn)核心反射
互聯(lián)網(wǎng)地址解析 SPI
為主機(jī)名和地址解析定義服務(wù)提供者接口 (SPI),以便 java.net.InetAddress 可以使用第三方解析器。
Java API 文檔中的 JEP 代碼片段
為 JavaDoc 的標(biāo)準(zhǔn) Doclet 引入了 @snippet 標(biāo)簽,以簡化在 API 文檔中的示例源代碼。
后續(xù) JDK 更新預(yù)告
Vector API (第三次進(jìn)行孵化)
為開發(fā)人員提供 API 用于提供可擴(kuò)展的 CPU 架構(gòu),相比于非可擴(kuò)展的處理器上在性能更加出眾。
外部函數(shù)和內(nèi)存 API(第二次進(jìn)行孵化)
引入一個 API,使 Java 程序能夠與其他的數(shù)據(jù)進(jìn)行互操作。通過有效調(diào)用外部函數(shù)(即 JVM 之外的代碼),以及安全訪問外部內(nèi)存(即不受 JVM 管理的內(nèi)存),該 API 使 Java 程序能夠調(diào)用本地庫并處理本地數(shù)據(jù),而沒有 JNI 的脆弱性和危險。
Switch 的模式匹配(第二次進(jìn)行預(yù)覽)
通過對 switch 表達(dá)式和語句的模式匹配,以及對模式語言的擴(kuò)展來增強(qiáng) Java 編程語言。將模式匹配擴(kuò)展到 switch 中,允許針對多個模式測試表達(dá)式,每個模式都有特定的操作,這樣就可以簡潔安全地表達(dá)復(fù)雜的面向數(shù)據(jù)的查詢。
棄用 Finalization,以便在未來刪除
Finalization 目前任然保持默認(rèn)啟用狀態(tài),但可以禁用它以方便測試。在未來的版本中,它將被默認(rèn)禁用,并在之后被徹底刪除。依賴于 Finalization 的庫和應(yīng)用程序的維護(hù)者應(yīng)該考慮遷移到其他資源管理技術(shù),如 try-with-resources 語句。
jdk18新功能如下:
JDK 18 新功能一覽:
JEP 400:指定 UTF-8 作為標(biāo)準(zhǔn) Java API 的默認(rèn)字符集。通過此更改,依賴于默認(rèn)字符集的 API 將在所有實現(xiàn)、操作系統(tǒng)、區(qū)域設(shè)置和配置中保持一致。
JEP 408:引入一個簡單的 Web 服務(wù)器。提供一個命令行工具,來啟動一個只提供靜態(tài)文件的最小網(wǎng)絡(luò)服務(wù)器,它沒有 CGI 或類似 servlet 的功能可用。該工具用于原型設(shè)計、臨時編碼和測試目的,尤其是在教學(xué)環(huán)境中。
JEP 413:支持在 Java API 文檔中加入代碼片段。為 JavaDoc 的 Standard Doclet 引入一個 @snippet 標(biāo)記,以簡化 API 文檔中嵌入示例源代碼的難度。
JEP 416 :用方法句柄重新實現(xiàn)核心反射。在 java.lang.invoke 的方法句柄之上,重構(gòu) java.lang.reflect 的方法、構(gòu)造函數(shù)和字段,使用方法句柄處理反射的底層機(jī)制將減少 java.lang.reflect 和 java.lang.invoke 兩者的 API 維護(hù)和開發(fā)成本。
JEP 417:Vector API(第三孵化器)。引入一個 API 來表達(dá)向量計算,這些計算在運行時可以編譯為支持的 CPU 架構(gòu)上的最佳向量指令,從而實現(xiàn)優(yōu)于等效標(biāo)量計算的性能。
JEP 418:互聯(lián)網(wǎng)地址解析 SPI。定義用于主機(jī)名和地址解析的服務(wù)提供者接口 (SPI),以便java.net.InetAddress可以使用平臺內(nèi)置解析器以外的解析器。
JEP 419:外部函數(shù)和內(nèi)存 API(第二孵化器)。引入了一個新 API, Java 程序可以通過它與 Java 運行時之外的代碼和數(shù)據(jù)進(jìn)行互操作。通過有效地調(diào)用外部函數(shù)(即 JVM 外的代碼),并安全地訪問外部內(nèi)存(即不由 JVM 管理的內(nèi)存),外部函數(shù)和內(nèi)存 API 使 Java 程序能夠調(diào)用本機(jī)庫并處理本機(jī)數(shù)據(jù),而不具有 JNI 的脆弱性和危險。
JEP 420: switch 模式匹配表達(dá)式。使用 switch 表達(dá)式和語句的模式匹配以及對模式語言的擴(kuò)展來增強(qiáng) Java 編程語言。將模式匹配擴(kuò)展到 switch 允許針對多個模式測試表達(dá)式,每個模式都有特定的操作,可以簡潔安全地表達(dá)復(fù)雜的面向數(shù)據(jù)的查詢。
JEP 421:棄用 Finalization 功能。Java 1.0 中引入的 Finalization 旨在幫助避免資源泄漏問題,然而這個功能存在延遲不可預(yù)測、行為不受約束,以及線程無法指定等缺陷,導(dǎo)致其安全性、性能、可靠性和可維護(hù)性方面都存在問題,因此將其棄用,用戶可選擇遷移到其他資源管理技術(shù),例如try-with-resources 語句和清潔器。
2022 年 1 月 20 日會進(jìn)入 Rampdown 第二階段,初始和最終候選(RC)版本將分別于明年 2 月 10 日和 2 月 24 日發(fā)布,穩(wěn)定版 JDK 18 將在 2022 年 3 月 22 日發(fā)布,可在 JDK 公告頁中查看最新消息。
JDK18安裝教程:
1、在本頁面下載jdk16,下載完成后解壓壓縮包“jdkv16.0.1_downcc.com.zip”,雙擊文件“jdk-16.0.1_windows-x64_bin.exe”進(jìn)入安裝步驟
2、點擊“下一步”
3、選擇路徑的時候默認(rèn)的就可以,如果需要修改安裝路徑,可以根據(jù)自己的需求來定。之后點擊“下一步”
4、等待進(jìn)度條讀取完畢
5、看到下面這個界面說明就安裝完畢了,點擊“關(guān)閉”完成安裝
jdk18環(huán)境變量配置:
該版本安裝完成之后環(huán)境變量已經(jīng)自動配置
通過“win+r”組合鍵啟動“運行”程序
輸入“cmd”之后進(jìn)入dos命令
在窗口輸入“java -version”之后就會看到下圖內(nèi)容:
說明此時java已經(jīng)完成環(huán)境變量配置,不需要再進(jìn)行配置了。