歡迎光臨
每天分享高質量文章

2018 年 Java 平臺發佈計劃之新特性展望

(點擊上方公眾號,可快速關註)


來源:達爾文,

www.infoq.com/news/2017/12/Java2018LookForward

過去一年 Java 發生了許多變化,其中一部分原因在於推遲了一年的 Java 9 的推出。但是,隨著時間的推移,人們發現,比起 Java 9 的推出,Java 版本發佈周期的變更意義更為重大。

前段時間公佈的 JDK 版本發佈計劃顯示,Java 發佈周期變更為每六個月一次,這意味著 2018 年 Java 將發佈兩個 Java 版本。第一個版本是 Java 10,第二個版本是 Java 11。

考慮到新版本的推出將嚴格遵循時間線,預計每個新版本發佈的 Java 特性將比起之前有所縮減。也就是說,Java 10 的新特性會比之前版本的新特性要少。

之前的文章還對 Java 10 的新特性進行瞭解密

https://www.oschina.net/news/91377/java-10-new-features

至於 Java 11 將會有哪些新功能,目前還無法確定。我們只是將以下功能納入了考慮範圍內:

  • Epsilon。一種對 Null 垃圾回收演算法的參考實現。

  • Dynamic Class File Constants 。一種主要針對軟體庫作者及使用動態特性(invokedynamic)的高級開發人員的平臺特性。

  • 運行時追蹤 JIT 編譯事件。

隨著發佈日期臨近,該特性串列後續一定會被補充。不過,該串列目前還未提及 Java 值型別。這也不奇怪,因為實現值型別需要對 Java 語言本身和運行時做出重大更新,還要對 Java 型別系統進行重構。

雖然當前原型已經工作,但要特性交付還需要花很長一段時間。當前的狀態至適用於低級別的平臺開發者,和一些慣於使用反射或 MethodHandle 工具的開發者。雖然值型別將作為 Java 11 的一部分發佈,但 Oracle 尚未透露任何有關該特性預期發佈時間的訊息。

如果值型別並未作為 Java 11 特性發佈,這將會產生連鎖反應。包含值型別的首個長期支持(LTS)版本將不會在 2021 年 9 月前發佈。

Java 11 中是否會有資料類(data classes)還不確定。Java 語言架構師 Brian Goetz 曾這樣說道:

資料類將用於解決類的表示與 API 合約間存在的複雜間接關係。通過使用資料類,編譯器可以填入一些普通類成員

資料類提案與 Scala 的 Case 類有些相似。Goetz 表示,資料類的設計可能會有一些變動,它的整體語意會比我們現在看到的更加深入。目前的資料類概念在開發過程中與樣式匹配功能相聯繫,但是它們有可能在不同的版本中提供。

與以上兩個特性相關的是,未來可能會對 Switch 形式做改進,Switch 陳述句塊將可作為運算式或宣告使用。該特性有望在 Java 11 實現,但目前看來,仍然是一個 JEP 草案。

預定在 9 月發佈的版本,其特性全部完成時間是 2018 年 6 月。因此,我們還需要等待數月,才能看到 Java 11 的整體形態。

看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,提升Java技能

赞(0)

分享創造快樂