JDK16全稱Java SE Development Kit 16,JDK 是使用 Java 編程語言構(gòu)建應(yīng)用、小程序和組件的開發(fā)環(huán)境。JDK 包括的工具有助于開發(fā)和測(cè)試用 Java 編程語言,新版本為廣大開發(fā)人員和JAVA使用用戶提供更多的新特性,JDK/Java 16 總共包含 17 個(gè) JEP,涉及到新語言特性、改進(jìn) JVM、新工具和庫(kù)、對(duì)未來功能的驗(yàn)證、孵化和預(yù)覽階段的功能以及提升生產(chǎn)效率這幾大方面。JDK/Java 16 的亮點(diǎn)包括孵化階段的 Vector API、密封類和接口、將 JDK 移植到 Windows / AArch64平臺(tái)、啟用 C++14 語言特性,以及將 ZGC 線程堆棧處理從安全點(diǎn)移動(dòng)到并發(fā)階段等。最新的Java開發(fā)工具包(JDK)最終完成了instanceof(JEP 394)和Records(JEP 395)的模式匹配,這是Java 14中首次預(yù)覽的語言增強(qiáng)功能。此外,開發(fā)人員可以使用新的Packaging Tool(JEP 392)進(jìn)行自我包裝。包含Java的應(yīng)用程序,并探索三種孵化功能,即Vector API(JEP 338),F(xiàn)oreign Linker API(JEP 389)和Foreign-Memory Access API(JEP 389),以及一種預(yù)覽功能,Sealed Classs( JEP 397)。
JDK(TM)7 32位是適用于Windows 32位操作系統(tǒng)的一個(gè)Java編程開發(fā)工具包,如果你的電腦中沒有安裝JDK,就無法編譯Java程序、進(jìn)行軟件開發(fā),主要用于移動(dòng)設(shè)備,嵌入設(shè)備的應(yīng)用程序。JDK是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境、Java工具和Java基礎(chǔ)的類庫(kù),不管是做Java開發(fā)還是做安卓開發(fā),都必須在電腦上安裝JDK。
jdk為用戶提供java工具運(yùn)行必備所有組件,沒有它就不能運(yùn)轉(zhuǎn),這樣用戶的java相關(guān)軟件就可以完美工作,不然用戶的一切java相關(guān)項(xiàng)目都會(huì)停置。
JDK詳細(xì)介紹
JDK(Java Development Kit) 是 Java 語言的軟件開發(fā)工具包(SDK)。
SE(J2SE),standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個(gè)版本,從JDK 5.0開始,改名為Java SE。
EE(J2EE),enterprise edition,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序,從JDK 5.0開始,改名為Java EE。
ME(J2ME),micro edition,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序,從JDK 5.0開始,改名為Java ME。
沒有JDK的話,無法編譯Java程序,如果想只運(yùn)行Java程序,要確保已安裝相應(yīng)的JRE。
JDK16版本介紹:
JDK 16是Java SE平臺(tái)版本16的開源參考實(shí)現(xiàn),由Java社區(qū)流程中的JSR 390指定。
JDK 16于2021年3月16日正式上市。Oracle提供了GPL下可用于生產(chǎn)的二進(jìn)制文件。其他供應(yīng)商的二進(jìn)制文件也將很快發(fā)布。
該版本的功能和時(shí)間表是通過JEP流程(由JEP 2.0提案修訂)提出并跟蹤的。該發(fā)行版是使用JDK發(fā)行流程(JEP 3)制作的。
特征
338: Vector API (Incubator)
347: Enable C++14 Language Features
357: Migrate from Mercurial to Git
369: Migrate to GitHub
376: ZGC: Concurrent Thread-Stack Processing
380: Unix-Domain Socket Channels
386: Alpine Linux Port
387: Elastic Metaspace
388: Windows/AArch64 Port
389: Foreign Linker API (Incubator)
390: Warnings for Value-Based Classes
392: Packaging Tool
393: Foreign-Memory Access API (Third Incubator)
394: Pattern Matching for instanceof
395: Records
396: Strongly Encapsulate JDK Internals by Default
397: Sealed Classes (Second Preview)
JDK16功能特性
Vector API (Incubator)
處于孵化階段的 Vector API,其中 JDK 將配備一個(gè)孵化器模塊jdk.incubator.vector,用于表達(dá)可在支持的 CPU 架構(gòu)上編譯為最佳矢量硬件指令的矢量計(jì)算,以實(shí)現(xiàn)優(yōu)于等效標(biāo)量計(jì)算的性能。
Enable C++14 Language Features
啟用 C++14 語言特性,支持在 JDK C++ 源代碼中使用 C++14 語言特性。
Migrate from Mercurial to Git
OpenJDK 源代碼庫(kù)從 Mercurial 遷移到 Git。
Migrate to GitHub
OpenJDK 源代碼庫(kù)遷移到 GitHub,此變化是基于 OpenJDK 源代碼庫(kù)從 Mercurial 遷移到 Git。
ZGC: Concurrent Thread-Stack Processing
將 ZGC 線程堆棧處理從安全點(diǎn)移動(dòng)到并發(fā)階段。此計(jì)劃的目標(biāo)包括從 ZGC 安全點(diǎn)中刪除線程堆棧處理。
Unix-Domain Socket Channels
為java.nio.channels包中的 socket channel 和 server-socket channel API 添加 Unix-domain (AF_UNIX) 支持。
Alpine Linux Port
針對(duì) x64 以及 AArch64 架構(gòu),將 JDK 移植到 Alpine Linux 以及其他使用 musl 作為主要 C 語言庫(kù)的 Linux 發(fā)行版上。
Elastic Metaspace
彈性元空間 (Elastic Metaspace) 能力,它可以將未使用的 HotSpot VM 類元數(shù)據(jù)(元空間)內(nèi)存更迅速地返回給操作系統(tǒng),從而減少元空間的占用空間并簡(jiǎn)化元空間代碼,以及降低維護(hù)成本。
Windows/AArch64 Port
將 JDK 移植到 Windows/AArch64 平臺(tái)。
Foreign Linker API (Incubator)
處于孵化階段的 Foreign Linker API(外部鏈接器 API),該 API 用于對(duì)本地代碼進(jìn)行靜態(tài)類型訪問。
Warnings for Value-Based Classes
對(duì)基于值的類 (Value-Based Classes) 進(jìn)行警告。在 Java 平臺(tái)中對(duì)于任何基于值的類實(shí)例進(jìn)行同步的錯(cuò)誤嘗試,會(huì)予以警告。
Packaging Tool
提供用于打包獨(dú)立 Java 應(yīng)用程序的 jpackage 工具。
Foreign-Memory Access API (Third Incubator)
處于孵化器第三階段的 Foreign-Memory Access API,該 API 允許 Java 應(yīng)用程序安全有效地訪問 Java 堆之外的外部?jī)?nèi)存。
Pattern Matching for instanceof
為 instanceof 操作符提供模式匹配。模式匹配使程序中的通用邏輯(即從對(duì)象中有條件地提取組件)得以更簡(jiǎn)潔、更安全地表達(dá)。
Records
Records 提供了一種緊湊的語法來聲明類,以幫助開發(fā)者寫出更簡(jiǎn)潔的代碼,這些類是淺層不可變數(shù)據(jù)(shallowly immutable data)的透明擁有者。該特性主要用在特定領(lǐng)域的類,這些類主要用于保存數(shù)據(jù),不提供領(lǐng)域行為。
Strongly Encapsulate JDK Internals by Default
除了sun.misc.Unsafe等關(guān)鍵的內(nèi)部 API 外,默認(rèn)對(duì) JDK 內(nèi)部進(jìn)行強(qiáng)封裝,用戶也可以選擇自 JDK 9 以來默認(rèn)的寬松強(qiáng)封裝。
Sealed Classes (Second Preview)
Sealed class & interface(密封類和接口)可以限制哪些類和接口可以繼承或?qū)崿F(xiàn)它們。
JDK環(huán)境變量配置方法
JDK(TM)7 32位安裝成功,還需要對(duì)JDK的環(huán)境變量進(jìn)行配置才能正常使用,具體操作如下:
右擊【計(jì)算機(jī)】,選擇【屬性】,進(jìn)入系統(tǒng)頁(yè)面,點(diǎn)擊【高級(jí)系統(tǒng)設(shè)置】,然后進(jìn)入系統(tǒng)屬性頁(yè)面,點(diǎn)擊【高級(jí)】——【環(huán)境變量】,
如圖,在【系統(tǒng)變量】下點(diǎn)擊【新建】,彈出對(duì)話框,變量名為【JAVA_HOME】,變量值是指安裝JDK的路徑,小編安裝在C:\Program Files (x86)\Java\jre7,點(diǎn)擊確定,
在系統(tǒng)變量中找到Path變量,進(jìn)行編輯,彈出對(duì)話框,變量名為Path,在變量值中添加輸入【;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;】,
注意,不要?jiǎng)h除原來Path的變量值,直接在后面輸入代碼,點(diǎn)擊確定,
找到CLASSPATH,沒有就要新建,變量名為CLASSPATH,變量值為【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 】,點(diǎn)擊確定,
返回桌面,檢測(cè)JDK是否配置成功,按【W(wǎng)in+R】,彈出運(yùn)行窗口,輸入cmd,打開命令提示符
輸入java -version(java 和 -version之間有空格),出現(xiàn)如圖信息,說明配置成功了。
