天天看點

Java新特性(1):Java 9和Java10

作者:湘王說

您好,我是湘王,這是我的頭條号「湘王說」,歡迎您來,歡迎您再來~

自從Java在2009年被Oracle收購之後,就不再開源,除了Oracle官方釋出的版本之外,還有OpenJDK版本,這兩者的差別可以自行找某度去搞明白。對于沒有幾千萬使用者的應用來說,OpenJDK已經足夠了,即使是一些大廠,内部系統用OpenJDK也足夠了。

從Java 8開始,整個JDK就一直在緻力于不斷改進,不斷融合新的開發特性。Java目前始終保持前向相容,是以如果有新的穩定版JDK出來,就可以立即使用新的JDK,嘗試一些新特性,而不必擔心不相容的問題(可能個别地方有改動,但對個人及小型開發來說可以忽略不計)。

先做一些名詞解釋:

1、JEP:Java Enhancement Proposals,Java增強提案。

2、JSR:Java Specification Requests的縮寫,意思是Java規範提案,是指向JCP(Java Community Process)提出新增一個标準化技術規範的正式請求。

3、CSR:是Compatibility & Specification Review的縮寫,也就是相容性和特征檢視。

4、?标記:是那些未在官方JEP中列出,但明确在該版本Java API中具有,而前一版本API沒有的特性。

先來看看Java9增加一些特性:

Java新特性(1):Java 9和Java10

Java9主要的改進包括子產品系統(261)、JShell(222)、日志內建(264)、棄用GC組合(214)、統一JVM日志(158)、統一GC日志(271)、集合工廠方法(269)、G1作為預設GC(248)、廢棄CMS GC(291)、Http 2 Client(110)、私有接口方法(?)、Stream API(?)、Flow API(?)等。

其中,子產品系統、JShell完全是雞肋,可以忽略;

日志內建基本上也不會用Java自帶的,跳過;

關于GC的後面會說,這裡跳過;

Http 2 Client在後續Java10及更高版本中又有改進,Java9中的文法基本被廢棄,是以可以先不看;

Flow API其實也是雞肋,在外部MQ如此強大的情況下,沒有人會用Java自帶的Pub-Sub。

是以總結說起來,Java9真正比較有用的就是集合工廠方法、私有接口方法和Stream API了。

在Java9以前建立集合的時候,是這麼幹的:

Java新特性(1):Java 9和Java10

而Java9就開始偷懶了:

Java新特性(1):Java 9和Java10

Java8一個接口中能定義如下幾種變量/方法:

1、常量

2、抽象方法

3、預設方法

4、靜态方法

Java9又增加了兩種:

1、私有方法

2、私有靜态方法

可以敲代碼試試看:

Java新特性(1):Java 9和Java10

基于Java8的流式程式設計,Java9又增加了幾個方法:takeWhile、dropWhile、iterate和ofNullable。來看看代碼:

Java新特性(1):Java 9和Java10

相比較于Java 9,Java10的特性少了很多:

Java新特性(1):Java 9和Java10

比較有意思的就是增加了一個叫做var的關鍵字(向Javascript學習嗎?Java也想長個script的尾巴?)

Java新特性(1):Java 9和Java10
Java新特性(1):Java 9和Java10

雖然多了var這個關鍵字,但我想真正習慣這種用法的人畢竟還是少數吧。而且對于大多數位農來說,如果在接手的系統中看到這種「新式」代碼,可能會有點懵。至于其他新增的特性,基本都是雞肋。

感謝您的大駕光臨!咨詢技術、産品、營運和管理相關問題,請關注後留言。歡迎騷擾,不勝榮幸~

我在頭條

繼續閱讀