JDK 10.0.1全稱Java SE Development Kit 10它實(shí)現(xiàn)了java10的標(biāo)準(zhǔn)版,最新版改進(jìn)了一個(gè)本地類型的推斷,加了一個(gè)垃圾回收的干凈接口,對(duì)局部進(jìn)行變量推斷,多個(gè)存儲(chǔ)庫合并成一個(gè)等內(nèi)容,更易使用。
JDK 10功能特性
1、局部變量類型推斷
局部變量類型推斷可以說是Java 10中最值得注意的特性,這是Java語言開發(fā)人員為了簡化Java應(yīng)用程序的編寫而采取的又一步,如下圖所示。
這個(gè)新功能將為Java增加一些語法糖 – 簡化它并改善開發(fā)者體驗(yàn)。新的語法將減少與編寫Java相關(guān)的冗長度,同時(shí)保持對(duì)靜態(tài)類型安全性的承諾。局部變量類型推斷將引入”var”關(guān)鍵字,也就是你可以隨意定義變量而不必指定變量的類型,如下圖:將被下面這個(gè)新語法所取代:
看完是不是有點(diǎn)JS的即視感???越來越像JS了嗎?!雖然類型推斷在Java中不是一個(gè)新概念,但在局部變量中確是很大的一個(gè)改進(jìn)。
說到類型推斷,從JDK5引進(jìn)泛型,到JDK7的操作符允許不綁定類型而初始化List,再到JDK8的Lambda表達(dá)式,再到現(xiàn)在JDK10的局部變量類型推斷,Java類型推斷正大刀闊斧的向前發(fā)展。
局部變量類型推薦僅限于如下使用場景:
局部變量初始化
for循環(huán)內(nèi)部索引變量
傳統(tǒng)的for循環(huán)聲明變量
Java官方表示,它不能用于以下幾個(gè)地方:
方法參數(shù)
構(gòu)造函數(shù)參數(shù)
方法返回類型
字段
捕獲表達(dá)式(或任何其他類型的變量聲明)
2.GC改進(jìn)和內(nèi)存管理
JDK10中有2個(gè)JEP專門用于改進(jìn)當(dāng)前的垃圾收集元素。
第一個(gè)垃圾收集器接口是(JEP304),它將引入一個(gè)純凈的垃圾收集器接口,以幫助改進(jìn)不同垃圾收集器的源代碼隔離。
預(yù)定用于Java10的第二個(gè)JEP是針對(duì)G1的并行完全GC(JEP307),其重點(diǎn)在于通過完全GC并行來改善G1最壞情況的等待時(shí)間。G1是Java9中的默認(rèn)GC,并且此JEP的目標(biāo)是使G1平行。
3.線程本地握手(JEP312)
JDK10將引入一種在線程上執(zhí)行回調(diào)的新方法,因此這將會(huì)很方便能停止單個(gè)線程而不是停止全部線程或者一個(gè)都不停。
4.備用內(nèi)存設(shè)備上的堆分配(JEP316)
允許HotSpotVM在備用內(nèi)存設(shè)備上分配Java對(duì)象堆內(nèi)存,該內(nèi)存設(shè)備將由用戶指定。
5.其他Unicode語言–標(biāo)記擴(kuò)展(JEP314)
目標(biāo)是增強(qiáng)java.util.Locale及其相關(guān)的API,以便實(shí)現(xiàn)語言標(biāo)記語法的其他Unicode擴(kuò)展(BCP47)。
6.基于Java的實(shí)驗(yàn)性JIT編譯器
Oracle希望將其JavaJIT編譯器Graal用作Linux/x64平臺(tái)上的實(shí)驗(yàn)性JIT編譯器。
7.根證書(JEP319)
這個(gè)的目標(biāo)是在Oracle的JavaSE中開源根證書。
8.根證書頒發(fā)認(rèn)證(CA)
這將使OpenJDK對(duì)開發(fā)人員更具吸引力,它還旨在減少OpenJDK和OracleJDK構(gòu)建之間的差異。
9.將JDK生態(tài)整合單個(gè)存儲(chǔ)庫(JEP296)
此JEP的主要目標(biāo)是執(zhí)行一些內(nèi)存管理,并將JDK生態(tài)的眾多存儲(chǔ)庫組合到一個(gè)存儲(chǔ)庫中。
10.刪除工具javah(JEP313)
從JDK中移除了javah工具,這個(gè)很簡單并且很重要。
檢查JDK環(huán)境是否配置成功命令
CMD命令提示符輸入 java -version
配置工具下載
官方介紹
甲骨文Oracle公司Java SE, JDK 10 于已2018年3月20號(hào)正式發(fā)布!盡管JDK 9對(duì)于許多Java開發(fā)人員非常新鮮,但它的發(fā)展并沒有停止。特別是JDK 10為局部變量實(shí)例化引入類型推斷機(jī)制,并將現(xiàn)有的JDK存儲(chǔ)庫合并到一個(gè)Mercurial存儲(chǔ)庫中。此外,為了更快地迭代,以及跟進(jìn)社區(qū)反饋,Java 的版本發(fā)布周期變更為每六個(gè)月一次,并且承諾不會(huì)跳票。新的發(fā)布周期也會(huì)嚴(yán)格遵循時(shí)間點(diǎn),將在每年的 3 月份和 9 月份發(fā)布。
JDK(Java Development Kit)是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境、Java開發(fā)工具和Java基礎(chǔ)類庫源代碼。JDK作為JAVA開發(fā)的環(huán)境,是運(yùn)行JAVA程序不可缺少的環(huán)境,不管是做JAVA開發(fā)還是做安卓開發(fā),都必須在電腦上安裝JDK。小到小型設(shè)備,大到智慧城市,Java的貢獻(xiàn)力量是其他任何技術(shù)無可比擬的。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版