摘要:的新特性說了這么多,看都會(huì)有哪些特性來改變我們寫代碼的方式呢局部變量類型推斷局部變量類型推斷可以說是中最值得注意的特性,這是語言開發(fā)人員為了簡(jiǎn)化應(yīng)用程序的編寫而采取的又一步,如下圖所示。
Java 9才發(fā)布幾個(gè)月,很多玩意都沒整明白,現(xiàn)在Java 10又快要來了。。
這時(shí)候我真尼瑪想說:線上用的JDK 7 甚至JDK 6,JDK 8 還沒用熟,JDK 9 才發(fā)布不久不知道啥玩意,JDK 10……
剛學(xué)Java的同學(xué)是不是感覺一臉蒙逼?!!!
就連我這個(gè)老司機(jī)也同樣感覺如此!
Java 更新越來越快,我們做技術(shù)的也要跟上步伐,不然總會(huì)慢別人一拍,這新東西從國(guó)外到國(guó)內(nèi)應(yīng)用一般要好幾年的時(shí)間,如果我們提前了解并應(yīng)用這些新技術(shù)對(duì)自己不是壞事。
Java 10的新特性說了這么多,看Java 10都會(huì)有哪些特性來改變我們寫代碼的方式呢?!
1.局部變量類型推斷局部變量類型推斷可以說是Java 10中最值得注意的特性,這是Java語言開發(fā)人員為了簡(jiǎn)化Java應(yīng)用程序的編寫而采取的又一步,如下圖所示。
這個(gè)新功能將為Java增加一些語法糖 - 簡(jiǎn)化它并改善開發(fā)者體驗(yàn)。新的語法將減少與編寫Java相關(guān)的冗長(zhǎng)度,同時(shí)保持對(duì)靜態(tài)類型安全性的承諾。
局部變量類型推斷將引入"var"關(guān)鍵字,也就是你可以隨意定義變量而不必指定變量的類型,如:
Listlist = new ArrayList (); Stream stream = getStream();
將被下面這個(gè)新語法所取代:
var list = new ArrayList(); var stream = getStream();
看完是不是有點(diǎn)JS的即視感???越來越像JS了嗎?!雖然類型推斷在Java中不是一個(gè)新概念,但在局部變量中確是很大的一個(gè)改進(jìn)。
說到類型推斷,從JDK 5引進(jìn)泛型,到JDK 7的"<>"操作符允許不綁定類型而初始化List,再到JDK 8的Lambda表達(dá)式,再到現(xiàn)在JDK 10的局部變量類型推斷,Java類型推斷正大刀闊斧的向前發(fā)展。
// 該運(yùn)算符允許在沒有綁定ArrayList <>的類型的情況下初始化列表 Listlist = new LinkedList <>();
局部變量類型推薦僅限于如下使用場(chǎng)景:
局部變量初始化
for循環(huán)內(nèi)部索引變量
傳統(tǒng)的for循環(huán)聲明變量
Java官方表示,它不能用于以下幾個(gè)地方:
方法參數(shù)
構(gòu)造函數(shù)參數(shù)
方法返回類型
字段
捕獲表達(dá)式(或任何其他類型的變量聲明)
2.GC改進(jìn)和其他內(nèi)務(wù)管理JDK 10中有2個(gè)JEP專門用于改進(jìn)當(dāng)前的垃圾收集元素。
第一個(gè)垃圾收集器接口是(JEP 304),它將引入一個(gè)純凈的垃圾收集器接口,以幫助改進(jìn)不同垃圾收集器的源代碼隔離。
預(yù)定用于Java 10的第二個(gè)JEP是針對(duì)G1的并行完全GC(JEP 307),其重點(diǎn)在于通過完全GC并行來改善G1最壞情況的等待時(shí)間。G1是Java 9中的默認(rèn)GC,并且此JEP的目標(biāo)是使G1平行。
3.線程本地握手(JEP 312)JDK 10將引入一種在線程上執(zhí)行回調(diào)的新方法,因此這將會(huì)很方便能停止單個(gè)線程而不是停止全部線程或者一個(gè)都不停。
4.備用內(nèi)存設(shè)備上的堆分配(JEP 316)允許HotSpot VM在備用內(nèi)存設(shè)備上分配Java對(duì)象堆內(nèi)存,該內(nèi)存設(shè)備將由用戶指定。
5.其他Unicode語言 - 標(biāo)記擴(kuò)展(JEP 314)目標(biāo)是增強(qiáng)java.util.Locale及其相關(guān)的API,以便實(shí)現(xiàn)語言標(biāo)記語法的其他Unicode擴(kuò)展(BCP 47)。
6.基于Java的實(shí)驗(yàn)性JIT編譯器(JEP 317)Oracle希望將其Java JIT編譯器Graal用作Linux / x64平臺(tái)上的實(shí)驗(yàn)性JIT編譯器。
7.根證書(JEP 319)這個(gè)的目標(biāo)是在Oracle的Java SE中開源根證書。
8.根證書認(rèn)證程序(CA)這將使OpenJDK對(duì)開發(fā)人員更具吸引力,它還旨在減少OpenJDK和Oracle JDK構(gòu)建之間的差異。
9.將JDK生態(tài)整合到單個(gè)存儲(chǔ)庫中(JEP 296)此JEP的主要目標(biāo)是執(zhí)行一些內(nèi)存管理,并將JDK生態(tài)的眾多存儲(chǔ)庫組合到一個(gè)存儲(chǔ)庫中。
10.刪除Native-Header生成工具(javah)(JEP 313)從JDK中移除了javah工具,這個(gè)很簡(jiǎn)單并且很重要。
嘗鮮就像所有其他JDK版本一樣,Oracle已經(jīng)發(fā)布了一個(gè)Java 10初始候選版本,Java開發(fā)者可以下載此版本用來測(cè)試新功能。如果你對(duì)Java 10抱有期待想提早嘗試,那么現(xiàn)在就開始吧!
嘗鮮地址:http://openjdk.java.net/proje...最后的感悟
對(duì)于第一點(diǎn)新特性來說確實(shí)是一個(gè)大的跨越,其他特性或多或少都能帶給開發(fā)者福音。但最終Java 10會(huì)是什么樣,或許還會(huì)增加更多實(shí)用性的新功能或者優(yōu)化,我們還得期待!
現(xiàn)在要做的就是,趕緊熟悉JDK 8,現(xiàn)在已經(jīng)是很多互聯(lián)網(wǎng)企業(yè)標(biāo)配了。如果還在使用JDK4-7,那真的是要OUT了。。
在不久的將來,Java 10將徹底改變你寫代碼的方式!
推薦:成為架構(gòu)師的十階段學(xué)習(xí)資料
推薦:Spring Boot & Cloud 最強(qiáng)技術(shù)教程
推薦:分享一套高級(jí)Java筆試題(實(shí)拍高清圖)
如果對(duì)你有用,歡迎分享到朋友圈
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/71320.html
以下是Java技術(shù)棧微信公眾號(hào)發(fā)布的關(guān)于 Java 的技術(shù)干貨,從以下幾個(gè)方面匯總。 Java 基礎(chǔ)篇 Java 集合篇 Java 多線程篇 Java JVM篇 Java 進(jìn)階篇 Java 新特性篇 Java 工具篇 Java 書籍篇 Java基礎(chǔ)篇 8張圖帶你輕松溫習(xí) Java 知識(shí) Java父類強(qiáng)制轉(zhuǎn)換子類原則 一張圖搞清楚 Java 異常機(jī)制 通用唯一標(biāo)識(shí)碼UUID的介紹及使用 字符串...
摘要:使用方法能以簡(jiǎn)單的注解形式來簡(jiǎn)化代碼,提高開發(fā)人員的開發(fā)效率。能通過注解的方式,在編譯時(shí)自動(dòng)為屬性生成構(gòu)造器方法。出現(xiàn)的神奇就是在源碼中沒有和方法,但是在編譯生成的字節(jié)碼文件中有和方法。沒法實(shí)現(xiàn)多種參數(shù)構(gòu)造器的重載。 1 Lombok背景介紹 官方介紹如下: Project Lombok makes java a spicier language by addi...
摘要:千呼萬喚,于正式發(fā)布版本即,也就是官方推薦可以廣泛使用的版本,其中發(fā)布了包括等個(gè)新特性,讓我們一睹為快。一新特性一覽二發(fā)布計(jì)劃日期階段說明對(duì)進(jìn)入階段的變化會(huì)應(yīng)用越來越嚴(yán)格的審查。我們需要支持以保持競(jìng)爭(zhēng)力并與最新標(biāo)準(zhǔn)保持同步。 千呼萬喚,JDK11于2018-09-25正式發(fā)布GA版本(GA即General Availability,也就是官方推薦可以廣泛使用的版本),其中發(fā)布了包括ZG...
摘要:讓你收獲滿滿碼個(gè)蛋從年月日推送第篇文章一年過去了已累積推文近篇文章,本文為年度精選,共計(jì)篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習(xí),特此花了幾個(gè)小時(shí)整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個(gè)蛋從2017年02月20...
閱讀 1971·2019-08-30 15:54
閱讀 3596·2019-08-29 13:07
閱讀 3124·2019-08-29 12:39
閱讀 1789·2019-08-26 12:13
閱讀 1547·2019-08-23 18:31
閱讀 2159·2019-08-23 18:05
閱讀 1844·2019-08-23 18:00
閱讀 1043·2019-08-23 17:15