近日,期待已久、沒有跳票的 JDK 10 發(fā)布了其第一個候選版本,官方表示第二個候選版本將在 3 月份發(fā)布。JDK 10 是 Java SE 10 的實現(xiàn),將在 2018 年 3 月 20 號發(fā)布正式版本。其關(guān)鍵改進包括局部類型推斷和整潔的垃圾回收接口。在同意加入早期采用者計劃后,用戶可以在官網(wǎng)下載體驗 (http://jdk.java.net/10/)。
之前聊聊架構(gòu)有報道過,新的一年,Java 為了更快地迭代,以及跟進社區(qū)反饋,已經(jīng)將版本發(fā)布周期變更為每六個月一次,并且承諾不會跳票。
JDK 10 中的關(guān)鍵特性包括:
局部變量類型推斷,用于增強語言以將類型推斷擴展到局部變量。其目的是減少與編碼相關(guān)的“形式”,同時保持靜態(tài)類型安全。
一個整潔的垃圾回收接口,提升不同垃圾回收器的源代碼隔離。這樣做是為了更好地模塊化 HotSpot 虛擬機中的內(nèi)部垃圾回收代碼,使向 HotSpot 添加新的垃圾回收器更加容易。
G1 垃圾回收器的并行完整垃圾回收。其目的是通過實現(xiàn)并行性來改善最壞情況下的延遲。
使 HotSpot 能將對象堆分配給用戶指定的備用內(nèi)存設(shè)備(例如 NVDIMM 內(nèi)存模塊)。該功能預(yù)示著,未來的系統(tǒng)可能具有異構(gòu)的內(nèi)存架構(gòu)。
使 Grall 基于 Java 的及時編譯器能實驗性用于 Linux/x64 平臺。
將眾多 JDK 倉庫合并到一個倉庫中,以簡化開發(fā)。直到現(xiàn)在,代碼庫一直分解為多個倉庫,導(dǎo)致源代碼管理問題。
應(yīng)用程序類數(shù)據(jù)共享,通過跨進程共享通用類元數(shù)據(jù)來減少占用空間。啟動時間也得到了改善。
線程本地握手,在不執(zhí)行全局 VM 安全點的情況下對線程執(zhí)行回調(diào)。可以停止單個線程,而不是停全部線程或一個不停。
在 JDK 中提供一組默認(rèn)的根證書頒發(fā)機構(gòu)證書。目標(biāo)是開源 Oracle 的 Java SE Root CA 程序中的根證書,以使 OpenJDK 對開發(fā)人員更具吸引力。
Oracle 的 Java SE 下載頁面尚沒有 JDK 10。但是,在最終版本發(fā)布之前,JDK 10 的開發(fā)還有其他階段。這些包括:
2018 年 1 月 11 號:在所有支持的平臺上至少完成一次所有計劃的測試。
2018 年 1 月 18 號:進行第二季度,只修復(fù)致命缺陷。
2018 年 2 月 22 號:最終候選發(fā)布版。
長期 Java 路線圖
以下是 Oracle 說后續(xù) Java SE 版本要考慮的新特性:
Amber 項目是一個孵化器,針對較小的、生產(chǎn)力導(dǎo)向的語言特性,包括:局部變量類型推斷,減少 Java 代碼的形式;增強枚舉,通過在枚舉中允許類型變量和對枚舉常量執(zhí)行更為清晰的類型檢查來提高 enum 構(gòu)造的表現(xiàn)力;lambda leftover,提高 lambda 和方法引用的可用性。
Panama 項目互連 JVM 和本地代碼,主要是 JVM 本地函數(shù)調(diào)用和 JVM 本地數(shù)據(jù)訪問。
Valhalla 是高級 Java 虛擬機和語言特性候選項的孵化器項目,包括值類型和泛型具體化。
Loom 項目旨在減少編寫并發(fā)應(yīng)用程序的復(fù)雜性。它要求添加替代的用戶模式線程實現(xiàn)、定界延續(xù)(delimited continuation)以及涉及調(diào)用堆棧操作的其他構(gòu)造。這個提議的主要目標(biāo)是提供線程的替代實現(xiàn),由用 Java 編寫的調(diào)度器管理。普通 Java 線程編程模型將被保留下來,而性能將得到改善并且占用空間減少。
根據(jù)這個新的六個月發(fā)布時間表,錯過這次發(fā)布的功能可能會延遲六個月在下一個發(fā)行版發(fā)布。除了針對 JDK 10 宣布的內(nèi)容外,Oracle 還沒有承諾何時兌現(xiàn)任何新提出的特性。
查看原文鏈接:https://www.infoworld.com/article/3230507/java/java-jdk-10-what-new-features-to-expect-in-the-next-java.html