本頁提供了JDK 10.0.1 / 8.0.172 正式版
JDK 10新增功能
1、局部變量類型推斷
局部變量類型推斷可以說是Java 10.0中最值得注意的特性,這是Java語言開發(fā)人員為了簡化Java應用程序的編寫而采取的又一步,如下圖所示。
這個新功能將為Java 10.0增加一些語法糖 – 簡化它并改善開發(fā)者體驗。新的語法將減少與編寫Java相關(guān)的冗長度,同時保持對靜態(tài)類型安全性的承諾。局部變量類型推斷將引入”var”關(guān)鍵字,也就是你可以隨意定義變量而不必指定變量的類型,如下圖:將被下面這個新語法所取代:
看完是不是有點JS的即視感???越來越像JS了嗎?!雖然類型推斷在Java中不是一個新概念,但在局部變量中確是很大的一個改進。
說到類型推斷,從JDK 5引進泛型,到JDK 7的”<>”*作符允許不綁定類型而初始化List,再到JDK 8的Lambda表達式,再到現(xiàn)在JDK10.0的局部變量類型推斷,Java類型推斷正大刀闊斧的向前發(fā)展。
局部變量類型推薦僅限于如下使用場景:
• 局部變量初始化
• for循環(huán)內(nèi)部索引變量
• 傳統(tǒng)的for循環(huán)聲明變量
Java 10.0官方表示,它不能用于以下幾個地方:
• 方法參數(shù)
• 構(gòu)造函數(shù)參數(shù)
• 方法返回類型
• 字段
• 捕獲表達式(或任何其他類型的變量聲明)
2、GC改進和內(nèi)存管理
JDK10.0中有2個JEP專門用于改進當前的**收集元素。
第一個**收集器接口是(JEP 304),它將引入一個純凈的**收集器接口,以幫助改進不同**收集器的源代碼隔離。
預定用于Java 10正式版的第二個JEP是針對G1的并行完全GC(JEP 307),其重點在于通過完全GC并行來改善G1最壞情況的等待時間。G1是Java 9中的默認GC,并且此JEP的目標是使G1平行。
3、線程本地握手(JEP 312)
JDK10.0將引入一種在線程上執(zhí)行回調(diào)的新方法,因此這將會很方便能停止單個線程而不是停止全部線程或者一個都不停。
4、備用內(nèi)存設(shè)備上的堆分配(JEP 316)
允許HotSpot VM在備用內(nèi)存設(shè)備上分配Java對象堆內(nèi)存,該內(nèi)存設(shè)備將由用戶指定。
5、其他Unicode語言 – 標記擴展(JEP 314)
目標是增強java.util.Locale及其相關(guān)的API,以便實現(xiàn)語言標記語法的其他Unicode擴展(BCP 47)。
6、基于Java的實驗性JIT編譯器
Oracle希望將其Java JIT編譯器Graal用作Linux / x64平臺上的實驗性JIT編譯器。
7、根證書(JEP 319)
這個的目標是在Oracle的Java SE中開源根證書。
8、根證書頒發(fā)認證(CA)
這將使OpenJDK對開發(fā)人員更具吸引力,它還旨在減少OpenJDK和Oracle JDK構(gòu)建之間的差異。
9、將JDK生態(tài)整合單個存儲庫(JEP 296)
此JEP的主要目標是執(zhí)行一些內(nèi)存管理,并將JDK生態(tài)的眾多存儲庫組合到一個存儲庫中。
10、刪除工具javah(JEP 313)
從JDK中移除了javah工具,這個很簡單并且很重要。
檢查JDK10.0環(huán)境是否配置成功命令:
檢查JDK環(huán)境是否配置成功命令:
CMD命令提示符輸入 java -version