網友評分: 7.2分
Java SE Development Kit是一款由甲骨文公司推出的Java開發工具包。它伴隨著數千個性能、穩定性和安全性更新,包含Java的應用程序,并探索三種孵化功能,即Vector API(JEP 338)、Foreign Linker API(JEP 389)和Foreign-Memory Access API(JEP 389),使其大幅度提升用戶工作效率。
Vector API (Incubator)
處于孵化階段的 Vector API,其中 JDK 將配備一個孵化器模塊jdk.incubator.vector,用于表達可在支持的 CPU 架構上編譯為最佳矢量硬件指令的矢量計算,以實現優于等效標量計算的性能。
Enable C++14 Language Features
啟用 C++14 語言特性,支持在 JDK C++ 源代碼中使用 C++14 語言特性。
Migrate from Mercurial to Git
OpenJDK 源代碼庫從 Mercurial 遷移到 Git。
Migrate to GitHub
OpenJDK 源代碼庫遷移到 GitHub,此變化是基于 OpenJDK 源代碼庫從 Mercurial 遷移到 Git。
ZGC: Concurrent Thread-Stack Processing
將 ZGC 線程堆棧處理從安全點移動到并發階段。此計劃的目標包括從 ZGC 安全點中刪除線程堆棧處理。
Unix-Domain Socket Channels
為java.nio.channels包中的 socket channel 和 server-socket channel API 添加 Unix-domain (AF_UNIX) 支持。
Alpine Linux Port
針對 x64 以及 AArch64 架構,將 JDK 移植到 Alpine Linux 以及其他使用 musl 作為主要 C 語言庫的 Linux 發行版上。
Elastic Metaspace
彈性元空間 (Elastic Metaspace) 能力,它可以將未使用的 HotSpot VM 類元數據(元空間)內存更迅速地返回給操作系統,從而減少元空間的占用空間并簡化元空間代碼,以及降低維護成本。
Windows/AArch64 Port
將 JDK 移植到 Windows/AArch64 平臺。
Foreign Linker API (Incubator)
處于孵化階段的 Foreign Linker API(外部鏈接器 API),該 API 用于對本地代碼進行靜態類型訪問。
Warnings for Value-Based Classes
對基于值的類 (Value-Based Classes) 進行警告。在 Java 平臺中對于任何基于值的類實例進行同步的錯誤嘗試,會予以警告。
Packaging Tool
提供用于打包獨立 Java 應用程序的 jpackage 工具。
Foreign-Memory Access API (Third Incubator)
處于孵化器第三階段的 Foreign-Memory Access API,該 API 允許 Java 應用程序安全有效地訪問 Java 堆之外的外部內存。
Pattern Matching for instanceof
為 instanceof 操作符提供模式匹配。模式匹配使程序中的通用邏輯(即從對象中有條件地提取組件)得以更簡潔、更安全地表達。
Records
Records 提供了一種緊湊的語法來聲明類,以幫助開發者寫出更簡潔的代碼,這些類是淺層不可變數據(shallowly immutable data)的透明擁有者。該特性主要用在特定領域的類,這些類主要用于保存數據,不提供領域行為。
Strongly Encapsulate JDK Internals by Default
除了sun.misc.Unsafe等關鍵的內部 API 外,默認對 JDK 內部進行強封裝,用戶也可以選擇自 JDK 9 以來默認的寬松強封裝。
Sealed Classes (Second Preview)
Sealed class & interface(密封類和接口)可以限制哪些類和接口可以繼承或實現它們。
語言增強功能首次在JDK 14中引入,在JDK 16中完成
JEP 394:instanceof的模式匹配–通過為instanceof運算符進行模式匹配來增強Java編程語言。
JEP 395:記錄–通過記錄增強Java編程語言,記錄是充當不變數據透明載體的類。記錄可以被視為名義元組。
提高開發人員生產力的新工具
JEP 392:打包工具–提供jpackage工具,用于打包自包含的Java應用程序。
改進的內存管理以提高性能
JEP 387:彈性元空間–更快地將未使用的HotSpot類元數據(即,元空間)內存返回給操作系統,減少元空間的占用空間,并簡化元空間代碼,以降低維護成本。
JEP 376:ZGC:并行線程堆棧處理–將ZGC線程堆棧處理從安全點移至并發階段。這項工作消除了允許并發堆棧處理的最后一個顯著瓶頸。
改進的網絡以提高開發人員的生產力和靈活性
JEP 380:UNIX域套接字通道–將對主要UNIX平臺和Windows通用的UNIX域套接字的所有功能的支持添加到java.nio.channels包中的套接字通道和服務器套接字通道API。UNIX域套接字用于同一主機上的進程間通信(IPC)。它們在大多數方面與TCP / IP套接字類似,不同之處在于它們是通過文件系統路徑名而不是Internet協議(IP)地址和端口號來尋址的。
解決未來不兼容的代碼
JEP 396:默認情況下強烈封裝JDK內部–在JDK 9中,我們強烈封裝了新的內部API元素,從而限制了對它們的訪問。但是,作為遷移的輔助手段,JDK 9故意選擇在運行時不強烈封裝JDK 8中存在的軟件包的內容。JDK16默認情況下封裝了JDK的大多數內部元素(關鍵內部API除外),從而加強了此約束。例如sun.misc.Unsafe。最終用戶仍然可以選擇自JDK 9以來默認使用的寬松的強封裝。這將鼓勵開發人員從使用內部元素遷移到使用標準API,以便他們和他們的用戶都可以毫不費力地升級到將來的Java版本。
JEP 390:基于值的類的警告–將原始包裝器類指定為基于值的類,并棄用其構造函數以進行刪除,從而提示新的棄用警告。提供有關在Java平臺中不正確嘗試在任何基于值的類的實例上進行同步的警告。
孵化和預覽功能
JEP 338:矢量API(孵化器) –提供孵化器模塊jdk.incubator.vector的初始迭代,以表達可在運行時可靠地編譯為支持的CPU架構上的最佳矢量硬件指令的矢量計算。
JEP 389:外部鏈接程序API(孵化器) –引入了API,該API提供了對本地代碼的靜態類型的純Java訪問。
JEP 393:外部存儲器訪問API(第三孵化器) –引入了API,以允許Java程序安全有效地訪問Java堆之外的外部存儲器。
JEP 397:密封類(第二預覽) –通過密封類和接口增強了Java編程語言。密封的類和接口限制可以擴展或實現它們的其他類或接口。
OpenJDK貢獻者的改進
JEP 347:啟用C ++ 14語言功能(在JDK源代碼中) –允許在JDK C ++源代碼中使用C ++ 14語言功能,并提供有關在HotSpot代碼中可以使用哪些功能的特定指南。
JEP 357:從Mercurial遷移到Git –將OpenJDK社區的源代碼存儲庫從Mercurial(hg)遷移到Git。
JEP 369:遷移到GitHub –在GitHub上托管OpenJDK社區的Git存儲庫。
新端口在更多平臺上提供對Java的支持
JEP 386:Alpine Linux端口–在x64和AArch64體系結構上,將JDK移植到Alpine Linux以及使用musl作為其主要C庫的其他Linux發行版。
JEP 388:Windows / Aarch64端口–將JDK移植到Windows / AArch64。
不斷使Java變得更好
基于不斷的創新,Java仍然是最成功的開發平臺之一,可以滿足現代應用程序開發人員不斷發展的需求。為了使Oracle Java SE訂閱對客戶更具價值,Oracle添加了GraalVM Enterprise作為應享權利。GraalVM可以幫助提高應用程序的性能并減少資源消耗,尤其是在微服務和云原生架構中。通過利用Oracle Java SE訂閱來管理Java資產的組織不僅受益于Oracle的最新增強功能和對Java專家的直接訪問,而且與其他方法相比可節省大量成本。
“沒有每隔三到四年就對Java的新事物產生興趣,這種節奏使我成為充滿激情的開發人員,老師和培訓師,這很活躍,”巴黎索邦大學北部的JoséPaumard助理教授和巴黎Java用戶聯合組織者說。 Group。“我迫切希望使用Records來提高數據處理代碼的性能和可讀性,并且能夠將其用作預覽功能之后,現在可以在此最新版本中使用它。”
開發人員可以了解有關Java 16的更多信息,并在3月23日,25日和30日的Oracle Developer Live:Java創新上獲得動手經驗。
如果在學習或從事Java開發、編譯java程序,那么安裝JDK
如果僅需運行java程序,只需要Java運行庫,那么安裝JRE
Java Development Kit(簡稱JDK)= Java開發套件,Java開發工具包,面向Java語言開發者。
Java Runtime Environment(簡稱JRE)= Java運行庫,Java運行環境,面向Java程序用戶們。
JDK:Java核心,含Java運行環境(JRE)、編譯器(javac.exe)、開發工具(javadoc.exe、jar.exe、keytool.exe、jconsole.exe)和Java工具類庫(如tools.jar)源代碼等java語言編譯所需的工具包。
JRE:Java語言開發的程序運行所需要的運行環境,包括JVM標準實現(java.exe等)及 Java核心類庫(rt.jar等),它不包含開發工具(編譯器、調試器等)