JAVA16版本.JDK16即将发布,你准备好了吗?
歲月無(wú)聲,歲月有聲.2020實(shí)鼠不易,2021牛轉(zhuǎn)乾坤。 當(dāng)我們開(kāi)發(fā)者與大多企業(yè)還停留在JDK8的時(shí)候,JDK16即將問(wèn)世,你準(zhǔn)備好了嗎?
鄭重申明:
第一次冒險(xiǎn)翻譯專業(yè)領(lǐng)域的文獻(xiàn),可想而知,效果特別糟糕。一般翻譯文獻(xiàn)特別是 技術(shù)專業(yè)領(lǐng)域 的內(nèi)容,因?yàn)樯婕暗胶芏鄬I(yè)術(shù)語(yǔ)、業(yè)內(nèi)常用語(yǔ),很多詞匯你在翻譯軟件根本找不到,并且大部分知識(shí)點(diǎn)技術(shù)都是成體系的、相互關(guān)聯(lián)的、多版本迭代的、有歷史原因的等等,因此要求你本身必須清楚每個(gè)技術(shù)點(diǎn)的前因后果和邏輯關(guān)系,否則翻譯起來(lái)特別耗費(fèi)時(shí)間精力,因?yàn)椴粩喾唴⒖嘉墨I(xiàn)了解學(xué)習(xí)和推敲揣摩,但其實(shí)徒勞無(wú)功,因?yàn)楹芏嗄愕阶詈筮€是沒(méi)看明白。而此次翻譯的 JDK 16 新特性 文獻(xiàn)內(nèi)容,確實(shí)是難上之難。
前言
到2021年3月,下一版本的 Java 升級(jí)發(fā)布將聚焦在原始類、密封類、記錄類、矢量類接口,以及用于 Windows ARM64 和 Alpine Linux 的端口上。
JDK 16 新增了基于值的類警告和密封類(第二次預(yù)覽)作為計(jì)劃功能,還加入了一系列新的特性,從外部鏈接程序API,到模式匹配,再到用于垃圾回收的并發(fā)線程堆棧處理。
JDK 16 將是繼9月15日發(fā)布的 JDK 15 之后,一個(gè)標(biāo)準(zhǔn)的 Java 版本參考實(shí)現(xiàn)。擬定發(fā)布計(jì)劃是在2020年12月10日和2021年1月14日分別兩次進(jìn)入提案凍結(jié)階段,隨后在2021年2月4日和2月18日發(fā)布兩個(gè)預(yù)覽版本。生產(chǎn)版本預(yù)計(jì)在2021年3月16日正式發(fā)布。
縱觀 JDK 史 :
JDK 1.01996-01-23 發(fā)布JDK 1.11997-02-19 發(fā)布JDK 1.21998-12-04 發(fā)布JDK 1.32000-05-08 發(fā)布JDK 1.42002-02-13 發(fā)布正則表達(dá)式,異常鏈,NIO,日志類,XML解析器,XLST 轉(zhuǎn)換器JDK 1.5/5.02004-09-30 發(fā)布自動(dòng)裝箱、泛型、動(dòng)態(tài)注解、枚舉、可變長(zhǎng)參數(shù)、遍歷循環(huán)JDK 1.6/6.02006-04 提供動(dòng)態(tài)語(yǔ)言支持、提供編譯 API 和衛(wèi)星 HTTP 服務(wù)器 API,改進(jìn) JVM 的鎖,同步垃圾回收,類加載JDK 1.7/7.02011-07-28 發(fā)布提供GI回收器、加強(qiáng)對(duì)非Java語(yǔ)言的調(diào)用支持(JSR-292,升級(jí)類加載架構(gòu)JDK 1.8/8.02014-03-18 發(fā)布Lambda 表達(dá)式、方法引用、默認(rèn)方法、新工具、Stream API、Date Time API 、Optional 類、Nashorn, JavaScript 引擎JDK 9.02017-09-21 發(fā)布JShell、不可變集合工廠方法、模塊系統(tǒng)、http協(xié)議2.0版本、Process API/CompletableFuture API/Optional Class/Stream API增強(qiáng)、匿名內(nèi)部類的鉆石操作符、默認(rèn)G1垃圾回收器、try語(yǔ)句語(yǔ)法改進(jìn)JDK 10.02018-03-21 發(fā)布JIT 編譯器、局部變量類型引用、數(shù)據(jù)類型共享、并行GC、root 證書、javah工具、堆分配JDK 11.02018-09-25 發(fā)布單命令運(yùn)行Java文件、Lambda 參數(shù)局部變量語(yǔ)法、基于嵌套訪問(wèn)控制、動(dòng)態(tài)類文件常量、誤操作垃圾回收器、刪除Java EE和 CORBA 模塊、ChaCha20與Poly1305加密算法、Aarch64增強(qiáng)、ZGC試用、棄用 Nashorn JS引擎JDK 12.02019-03-19 發(fā)布JVM 增強(qiáng)、Switch 表達(dá)式、文件 mismatch() 方法、String 新方法 indent()/transform()/describeConstable()/resolveConstantDesc()、JVM常量API、instanceof 模式匹配JDK 13.02019-09-17 發(fā)布支持編寫文本塊、Switch 表達(dá)式增強(qiáng)、重構(gòu)遺留的 Socket API、取消提交未使用內(nèi)存、動(dòng)態(tài)CDS存檔、支持Unicode 12.1、DOM 和 SAX 工廠支持命名空間JDK 14.02020-03-17 發(fā)布空指針異常增強(qiáng)提示、Switch 表達(dá)式(標(biāo)準(zhǔn))、instanceof 模式匹配(預(yù)覽)、Records 類(預(yù)覽)、文本塊(第二次預(yù)覽)、打包工具(孵化)、JFR 事件流、ZGC ( 支持 macOS 和 Windows )、外部存儲(chǔ)器訪問(wèn)API(孵化)JDK 15.02020-09-15 發(fā)布密封類(預(yù)覽)、instanceof 模式匹配(第二次預(yù)覽)、Records 類(第二次預(yù)覽)、文本塊(標(biāo)準(zhǔn))、隱藏類、刪除 Nashorn JS引擎、重構(gòu)遺留的 DatagramSocket API、外部存儲(chǔ)器訪問(wèn)API(第二次孵化)、棄用RMI激活、移除 Solaris 和 SPARC 的端口JDK 16.02020-12-10 第一次提案凍結(jié)2021-01-14 第二次提案凍結(jié)2021-02-04 發(fā)布第一個(gè)預(yù)覽版本2021-02-18 發(fā)布第二個(gè)預(yù)覽版本2021-03-16 正式發(fā)布在這里插入圖片描述
截至2020年12月1日,JDK 16 有 15項(xiàng) 正式提案,另外基于值的類警告和密封類(第二次預(yù)覽)2項(xiàng) 仍處于 “針對(duì)目標(biāo)提案” 階段。
Java 16 的新特性包括:
1、基于值的類警告提議 將原始包裝類指定為基于值的類,同時(shí)不推薦通過(guò)提示新棄用警告促使用戶將其構(gòu)造函數(shù)移除。在 Java 平臺(tái)中對(duì)于任何基于值的類實(shí)例進(jìn)行同步的錯(cuò)誤嘗試,會(huì)予以警告。推動(dòng)這一努力的是 Valhalla 項(xiàng)目,該項(xiàng)目正在以原始類的形式對(duì) Java 編程模型進(jìn)行重大改進(jìn)。原始類將實(shí)例聲明為無(wú)身份的,并且可以內(nèi)聯(lián)或展平表示形式,其中實(shí)例可以在內(nèi)存位置之間自由復(fù)制,并可以使用實(shí)例字段的值進(jìn)行編碼。Java 中原始類的設(shè)計(jì)和實(shí)現(xiàn)現(xiàn)在已經(jīng)足夠成熟,可以預(yù)見(jiàn),在將來(lái)的發(fā)行版中會(huì)把 Java 平臺(tái)的某些類遷移至原始類。這些計(jì)劃遷移的類在API規(guī)范中將被設(shè)計(jì)成 基于值的類。
2、之前在 JDK 15 中進(jìn)行過(guò)預(yù)覽,密封類 和接口限制了可以擴(kuò)展或?qū)崿F(xiàn)它們的類和接口。這項(xiàng)計(jì)劃的目標(biāo)包括:允許類或接口的創(chuàng)建者控制負(fù)責(zé)實(shí)現(xiàn)它的代碼,提供比訪問(wèn)修飾符更聲明性的方式來(lái)限制超類的使用,并通過(guò)提供模式分析基礎(chǔ)來(lái)支持模式匹配的未來(lái)發(fā)展。
3、默認(rèn)情況下,JDK 內(nèi)部結(jié)構(gòu)是強(qiáng)封裝的,而關(guān)鍵內(nèi)部API(例如misc.Unsafe)除外。自 JDK 9 以來(lái)默認(rèn)允許用戶選擇使用寬松的強(qiáng)封裝。作為 Jigsaw 項(xiàng)目 的一部分,此提案的目標(biāo)包括提高 JDK 的安全性和可維護(hù)性,并鼓勵(lì)開(kāi)發(fā)人員從直接使用內(nèi)部元素逐漸遷移為使用標(biāo)準(zhǔn) API,這樣開(kāi)發(fā)人員和最終用戶都可以輕松地升級(jí)到 Java 的未來(lái)版本。該建議確實(shí)存在主要風(fēng)險(xiǎn),即現(xiàn)有版本的 Java 代碼將無(wú)法運(yùn)行。鼓勵(lì)開(kāi)發(fā)人員使用 jdeps 工具來(lái)識(shí)別代碼中依賴的 JDK 內(nèi)部元素,并在可用時(shí)切換到 標(biāo)準(zhǔn)替代版本。開(kāi)發(fā)人員可以使用現(xiàn)有的發(fā)行版(如JDK 11)來(lái)測(cè)試現(xiàn)有代碼,通過(guò)使用 --illegal-access=warn 來(lái)識(shí)別通過(guò)反射訪問(wèn)的內(nèi)部元素,使用 --illegal-access=debug 來(lái)定位錯(cuò)誤的代碼,并使用 --illegal-access=deny 來(lái)進(jìn)行測(cè)試。
4、支持靜態(tài)類型的純 Java 方式訪問(wèn)本地代碼的 外部鏈接程序 API。該接口在 JDK 16 中處于孵化階段,與被提案的外部存儲(chǔ)訪問(wèn)接口一起,外部鏈接程序接口將會(huì)大大減少像其他方式綁定本地庫(kù)容易出錯(cuò)的情況。這項(xiàng)計(jì)劃目的在于通過(guò)用更高級(jí)的純 Java 開(kāi)發(fā)模式來(lái)替換 JNI(Java本機(jī)接口),以提供與C語(yǔ)言的交互,并隨著時(shí)間的推移,它將更加靈活并適配支持其它平臺(tái)(例如32位的x86架構(gòu))和其他非C語(yǔ)言編寫的外部函數(shù)(例如C++編寫的外部函數(shù))。它的性能將會(huì)比JNI更加優(yōu)越。
5、將 ZGC(可擴(kuò)展的低延遲垃圾收集器)線程堆棧處理 從安全點(diǎn)移至并發(fā)階段。該計(jì)劃的目標(biāo)包括從ZGC安全點(diǎn)中刪除線程堆棧處理,使堆棧處理變得懶性、協(xié)同、并發(fā)和增量,從ZGC安全點(diǎn)移除所有其它單一線程的 root 處理,并為其它虛擬機(jī)子系統(tǒng)提供了一種延遲處理堆棧的機(jī)制。ZGC旨在使 HotSpot 中的GC暫停和可伸縮性問(wèn)題成為過(guò)去。到目前為止,隨著堆大小和元空間大小變化而伸縮的GC操作已經(jīng)從安全點(diǎn)操作中移除,并遷到并發(fā)階段,它們包括標(biāo)記,重定位,引用處理,類卸載和大多 root 處理。GC安全點(diǎn)中唯一仍保留執(zhí)行的是子集root處理和限時(shí)標(biāo)記終止操作。這些 root 處理包括Java線程堆棧和其它線程 root,由于它們會(huì)隨線程數(shù)量而伸縮所以會(huì)存在問(wèn)題。要消除這些問(wèn)題,每個(gè)線程的處理(包括堆棧掃描)必須移動(dòng)到并發(fā)階段。通過(guò)這項(xiàng)計(jì)劃,提升延遲的吞吐成本將會(huì)微不足道,并且在典型計(jì)算機(jī)上ZGC安全點(diǎn)內(nèi)部花銷的時(shí)間將會(huì)少于1毫秒。
6、彈性元空間功能 可將未使用的 HotSpot 虛擬機(jī)類元數(shù)據(jù)(元空間)占用的內(nèi)存更迅速地返回給操作系統(tǒng),從而減少元空間占用并簡(jiǎn)化元空間代碼以降低維護(hù)成本。元空間存在大量的堆外內(nèi)存使用問(wèn)題。該項(xiàng)計(jì)劃呼吁采用內(nèi)存分區(qū)分配方案來(lái)替換現(xiàn)有的內(nèi)存分配機(jī)制,提供一種將內(nèi)存劃分為多個(gè)分區(qū)以滿足內(nèi)存請(qǐng)求的算法。這種方法已在許多地方使用(例如 Linux 內(nèi)核等),它將使得在較小塊中分配內(nèi)存以減少類加載器開(kāi)銷的方式變得可行,碎片化也將減少。此外,從操作系統(tǒng)到內(nèi)存管理區(qū)域,記憶內(nèi)存都將被延遲、按需使用,以減少加載程序占用的空間,這些加載程序從大型區(qū)域開(kāi)始占用,但又不立即使用它們或可能無(wú)法充分利用它們。為了充分利用分區(qū)分配所提供的彈性,將元空間內(nèi)存排列成大小一致的顆粒,這些顆粒可以彼此獨(dú)立地進(jìn)行提交和不提交。
7、啟用C++ 14語(yǔ)言功能,以允許在 JDK C++源代碼中使用 C++ 14 功能,并提供關(guān)于這些允許在 HotSpot 虛擬機(jī)代碼中使用的功能的具體指南。通過(guò)JDK 15,我們知道在 JDK 中 C++代碼使用的語(yǔ)言特性已限于 C++ 98/03語(yǔ)言標(biāo)準(zhǔn)。自 JDK 11,源代碼就已升級(jí)為支持使用更新版本的C++標(biāo)準(zhǔn)進(jìn)行構(gòu)建。這包括能夠使用支持 C++ 11/14語(yǔ)言功能的最新版本的編譯器進(jìn)行構(gòu)建。這項(xiàng)提案不推薦對(duì)在 HotSpot 之外使用的C++代碼樣式或用法進(jìn)行更改,但是要利用C++語(yǔ)言的特性,一些構(gòu)建時(shí)的更改是必須的,這取決于平臺(tái)編譯器。
8、孵化階段的矢量API,是 JDK 中配備的一個(gè)孵化模塊jdk.incubator.vector,用于表達(dá)矢量計(jì)算————編譯為所支持的 CPU 架構(gòu)上的最佳硬件指令。以實(shí)現(xiàn)優(yōu)于同等標(biāo)量計(jì)算的性能。矢量API提供了一種使用Java編寫復(fù)雜矢量算法的機(jī)制,該機(jī)制使用 HotSpot 虛擬機(jī)中預(yù)先存在的支持連同一套用戶模型進(jìn)行矢量化,使其更可預(yù)測(cè)且更具健壯性。該提案的目標(biāo)包括提供一個(gè)清晰簡(jiǎn)潔的API來(lái)表達(dá)一系列向量計(jì)算,通過(guò)支持多個(gè) CPU 架構(gòu)實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性,以及在 x64 和 AArch64 架構(gòu)上提供可靠的運(yùn)行時(shí)編譯和性能。優(yōu)雅降級(jí)也是一個(gè)目標(biāo),在這個(gè)目標(biāo)中,如果向量計(jì)算在運(yùn)行時(shí)不能完全表示為硬件向量指令序列,那么向量計(jì)算將優(yōu)雅地降級(jí),并且仍然可以正常工作,原因可能是某個(gè)架構(gòu)不支持某些指令,或者是其它CPU架構(gòu)不受支持。
9、將JDK移植到 Windows/AArch64 平臺(tái)。隨著新的服務(wù)器級(jí)和消費(fèi)類 AArch64(ARM64)硬件的發(fā)布,加上需求原因 Windows/AArch64 已經(jīng)成為一個(gè)重要的平臺(tái)。雖然移植本身已經(jīng)基本完成,但該項(xiàng)提案的重點(diǎn)是將端口集成到主線JDK庫(kù)中。
10、在 x64 和 AArch64 架構(gòu)上,將 JDK移植到 Alpine Linux 和其他使用 musl 作為其主要C庫(kù)的 Linux 發(fā)行版。Musl是 ISOC 和 Posix 標(biāo)準(zhǔn)中描述的標(biāo)準(zhǔn)庫(kù)功能的Linux實(shí)現(xiàn)。 Alpine Linux 由于鏡像較小而被廣泛應(yīng)用于云部署、微服務(wù)和容器環(huán)境中。Linux 版本的 Docker 容器鏡像小于6MB。讓 Java 在這種設(shè)置中開(kāi)箱即用,并允許Tomcat、Jetty、Spring和其它流行的框架在本機(jī)環(huán)境中正常工作。通過(guò)使用 jlink 來(lái)減少 Java 運(yùn)行時(shí)的大小,用戶可以創(chuàng)建一個(gè)更小的鏡像,以運(yùn)行特定的應(yīng)用程序。
11、[提供記錄類,作為不可變數(shù)據(jù)的透明載體。記錄類可以認(rèn)為是名義元組。記錄類在 JDK 14 和 JDK 15 中進(jìn)行了預(yù)覽。此做法是為了回應(yīng)有關(guān)Java過(guò)于冗長(zhǎng)拘謹(jǐn)?shù)谋г埂T撚?jì)劃的目標(biāo)包括設(shè)計(jì)一個(gè)表示簡(jiǎn)單值集合的面向?qū)ο蟮臉?gòu)造器,幫助開(kāi)發(fā)人員專注于對(duì)不可變數(shù)據(jù)的建模而不是擴(kuò)展行為,自動(dòng)實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的方法(例如 equals 和 accessors ),并保留長(zhǎng)期的 Java 原則,例如名義類型。
12、Unix-Domain 套接字通道 的添加,其中Unix-Domain(AF_UNIX)套接字支持被添加到 nio.channels 包中的套接字通道和服務(wù)器套接字通道API中。該計(jì)劃還擴(kuò)展了繼承的通道機(jī)制,以支持Unix-Domain套接字通道和服務(wù)器套接字通道。Unix-Domain套接字用于同一主機(jī)上的進(jìn)程間通信。它們?cè)诖蠖鄶?shù)方面與TCP/IP套接字類似,除了它們是通過(guò)文件系統(tǒng)路徑名而不是IP地址和端口號(hào)尋址的。新功能的目標(biāo)主要是支持Unix平臺(tái)和Windows通用的Unix-Domain套接字通道的所有功能。Unix-Domain套接字通道在讀取/寫入行為,連接設(shè)置,服務(wù)器對(duì)傳入連接的接受以及在選擇器中與其他非阻塞可選通道的復(fù)用方面將與現(xiàn)有的TCP/IP通道相同。Unix-Domain套接字比用于本地,進(jìn)程間通信的TCP/IP回送連接更安全,更高效。
13、外部存儲(chǔ)器訪問(wèn)API,允許Java程序安全地訪問(wèn)Java堆以外的外部存儲(chǔ)器。外部存儲(chǔ)器訪問(wèn)API,以前在JDK 14和JDK 15中都進(jìn)行過(guò)孵化,未來(lái)在 JDK 16 中將再次孵化,并加以改良。改良范圍包括在 MemorySegment 和 MemoryAddresses 接口之間劃分更明確的角色。此項(xiàng)提案的目標(biāo)包括提供一個(gè)可以在各種外部存儲(chǔ)(包括本機(jī),持久化介質(zhì)以及托管堆存儲(chǔ)器)上運(yùn)行的 API。該 API 不會(huì)對(duì)虛擬機(jī)的安全性造成威脅。該項(xiàng)提案的動(dòng)機(jī)是為了讓很多 Java程序訪問(wèn)外部存儲(chǔ),像 Ignite、Memcached 以及 MapDB 。遺憾的是 Java API 還沒(méi)有令人滿意的訪問(wèn)外部存儲(chǔ)的解決方案。
14、在 JDK 14和 JDK 15中都已預(yù)覽過(guò) instanceof 操作符的 模式匹配,它將在JDK 16中最終確定。模式匹配使程序中的通用邏輯(即從對(duì)象中有條件地提取組件)得以更簡(jiǎn)潔、安全的表達(dá)。
15、提供一款名為 jpackage 的工具,用于獨(dú)立打包 Java 應(yīng)用程序。jpackage 在 JDK 14 中被作為孵化工具引入,并在 JDK 15 中仍處于孵化階段。到了JDK 16,jpackage 將投入生產(chǎn),支持本地的軟件包格式,從而為用戶提供自然的安裝體驗(yàn),并允許在打包時(shí)指定啟動(dòng)時(shí)參數(shù)。支持的格式包括 Windows 上的 msi 和 exe ,MacOS 上的 pkg 和 dmg 以及 Linux 上的 deb 和 rpm 。該工具可以直接從命令行或以編程方式調(diào)用。新的打包工具解決了這樣一種情況:許多Java應(yīng)用程序需要以全局可用的方式安裝在本機(jī)平臺(tái)上,而不是簡(jiǎn)單地放置在類路徑或模塊路徑上。因此提供適合本機(jī)平臺(tái)的可安裝軟件包非常有必要。
16、OpenJDK 源代碼倉(cāng)庫(kù)從 Mercurial 遷移至 Git。推動(dòng)這一努力會(huì)在幾方面體現(xiàn)優(yōu)勢(shì):版本控制系統(tǒng)元數(shù)據(jù)大小方面、可用工具方面以及托管方面。
17、遷移到 GitHub,這個(gè)變化是基于 OpenJDK 源代碼庫(kù)從 Mercurial 遷移到 Git,JDK 16源代碼倉(cāng)庫(kù)將出現(xiàn)在流行的代碼共享網(wǎng)站上。Mercurial JDK 和 JDK-sandbox 遷移到 Git、GitHub 和 Skara 的過(guò)渡工作已于9月5日完成,現(xiàn)已向用戶開(kāi)放。
在網(wǎng)站 jdk.java.net 中可以下載到適用于 Linux、Windows 和 MacOS 的 JDK 16 早期測(cè)試版本。和JDK 15一樣,JDK 16也會(huì)是一個(gè)短期版本,僅支持六個(gè)月。而計(jì)劃在2021年9月發(fā)布的 JDK 17 將會(huì)是一個(gè)長(zhǎng)期支持(LTS)版本,并獲得數(shù)年的支持。當(dāng)前的長(zhǎng)期支持(LTS)版本是2018年9月發(fā)布的 JDK 11。總結(jié)
相信很多企業(yè)或個(gè)人,目前都還在使用 JDK 8 這個(gè)長(zhǎng)期維護(hù)版本,最新一個(gè)長(zhǎng)期維護(hù)版本是 JDK 11 ,估計(jì)使用的人群也還不是特別多,因?yàn)閷?duì)于企業(yè)/個(gè)人來(lái)說(shuō),版本升級(jí)的成本太大了,往往我們更加需要的是系統(tǒng)能夠穩(wěn)定安全運(yùn)作,哪怕是需要犧牲一部分性能。從 JDK8 開(kāi)始,Java 語(yǔ)言就越顯得更加具有攻擊性和包容性,版本升級(jí)速度和周期也是極其驚人,如今短短幾年,已是 JDK 16,所以本人特別看好 Java 在未來(lái)市場(chǎng)的占比和技術(shù)能力的持續(xù)延伸,加油,Java 們。
References
[1] JDK 16: https://www.infoworld.com/art…
[2] JDK 15: https://www.infoworld.com/art…
[3] 基于值的類警告提議: https://openjdk.java.net/jeps…
[4] Valhalla 項(xiàng)目: https://openjdk.java.net/proj…
[5] 基于值的類: https://docs.oracle.com/en/ja…
[6] 密封類: https://openjdk.java.net/jeps…
[7] JDK 內(nèi)部結(jié)構(gòu)是強(qiáng)封裝的: https://openjdk.java.net/jeps…
[8] Jigsaw 項(xiàng)目: https://openjdk.java.net/proj…
[9] 標(biāo)準(zhǔn)替代版本: https://wiki.openjdk.java.net…'sinternalAPIs
[10] 外部鏈接程序 API: https://openjdk.java.net/jeps…
[11] ZGC(可擴(kuò)展的低延遲垃圾收集器)線程堆棧處理: https://openjdk.java.net/jeps…
[12] 彈性元空間功能: https://openjdk.java.net/jeps…
[13] 啟用C++ 14語(yǔ)言功能: https://openjdk.java.net/jeps…
[14] C++ 14: https://www.infoworld.com/art…
[15] 孵化階段的矢量API: https://openjdk.java.net/jeps…
[16] 將JDK移植到 Windows/AArch64 平臺(tái): https://openjdk.java.net/jeps…
[17] JDK移植到 Alpine Linux : https://openjdk.java.net/jeps…
[18] jlink: https://openjdk.java.net/jeps…
[19] 提供記錄類: https://openjdk.java.net/jeps…
[20] Unix-Domain 套接字通道: https://openjdk.java.net/jeps…
[21] 外部存儲(chǔ)器訪問(wèn)API: https://openjdk.java.net/jeps…
[22] 模式匹配: https://openjdk.java.net/jeps…
[23] 提供一款名為 jpackage 的工具,用于獨(dú)立打包 Java 應(yīng)用程序: https://openjdk.java.net/jeps…
[24] JDK 14: https://www.infoworld.com/art…
[25] OpenJDK 源代碼倉(cāng)庫(kù)從 Mercurial 遷移至 Git: https://openjdk.java.net/jeps…
[26] 遷移到 GitHub: https://openjdk.java.net/jeps…
[27] JDK 16源代碼倉(cāng)庫(kù)將出現(xiàn)在流行的代碼共享網(wǎng)站上: https://www.infoworld.com/art…
[28] jdk.java.net: https://jdk.java.net/16/
[29] JDK 11: https://www.infoworld.com/art…
總結(jié)
以上是生活随笔為你收集整理的JAVA16版本.JDK16即将发布,你准备好了吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: docker file的介绍
- 下一篇: JAVA16版本.JDK16关于TCP和