1. 程式人生 > >Java 11將於本月25日釋出,新特性一覽

Java 11將於本月25日釋出,新特性一覽

作者:漫畫程式設計

來源:漫畫程式設計

2017年8月,JCP執行委員會提出將Java的釋出頻率改為每六個月一次。該決定將在Java 9正式釋出之後開始實行。

2018年3月,Java 10如期而至。目前已經是2018年9月份,Java 11 即將於本月25日正式釋出。

在openjdk的官網上,JDK 11目前處於 Release Candidate Phase(最終測試版本)

640?wx_fmt=png

release

Release Candidate Phase ,就是軟體開發宣告週期中的RC版本,整個軟體的上線週期一般會經歷Alpha、Beta、RC、GA等幾個版本。

通常來說,RC就是軟體的候選版本,RC版基本不會再加入新的功能,主要用於除錯。

所以,基本RC版本上面有的特性,就是正式版的特性了。本文就基於當前最新的資料,整理總結一下JDK 11的新特性。

JDK 11 新特性

在openjdk的官網上,可以看到,新版本的JDK共有17個新特性:

640?wx_fmt=png

features

簡單介紹幾個比較重要的新特性:

1、ZGC:可擴充套件的低延遲垃圾收集器

ZGC是一款號稱可以保證每次GC的停頓時間不超過10MS的垃圾回收器,並且和當前的預設垃圾回收起G1相比,吞吐量下降不超過15%。

2、Epsilon:什麼事也不做的垃圾回收器

Java 11還加入了一個比較特殊的垃圾回收器——Epsilon,該垃圾收集器被稱為“no-op”收集器,將處理記憶體分配而不實施任何實際的記憶體回收機制。 也就是說,這是一款不做垃圾回收的垃圾回收器。這個垃圾回收器看起來並沒什麼用,主要可以用來進行效能測試、記憶體壓力測試等,Epsilon GC可以作為度量其他垃圾回收器效能的對照組。大神Martijn說,Epsilon GC至少能夠幫助理解GC的介面,有助於成就一個更加模組化的JVM。

3、增強var用法

Java 10中增加了本地變數型別推斷的特性,可以使用var來定義區域性變數。儘管這一特性被很多人詬病,但是並不影響Java繼續增強他的用法,在Java 11中,var可以用來作為Lambda表示式的區域性變數宣告。

4、移除Java EE和CORBA模組

早在釋出Java SE 9的時候,Java就表示過,會在未來版本中將Java EE和CORBA模組移除,而這樣舉動終於在Java 11中實施。終於去除了Java EE和CORBA模組。

5、HTTP客戶端進一步升級

JDK 9 中就已對 HTTP Client API 進行標準化,然後通過JEP 110,在 JDK 10 中進行了更新。在本次的Java 11的更新列表中,由以JEP 321進行進一步升級。該API通過CompleteableFutures提供非阻塞請求和響應語義,可以聯合使用以觸發相應的動作。 JDK 11完全重寫了該功能。現在,在使用者層請求釋出者和響應釋出者與底層套接字之間追蹤資料流更容易了,這降低了複雜性,並最大程度上提高了HTTP / 1和HTTP / 2之間的重用的可能性。

後記

以上就是關於Java 11的新訊息,本次的這個版本的JDK,對於Java開發者的開發模式並沒有很大的改變。既沒有像Java 8一樣開始支援函數語言程式設計,也沒有像Java 10一樣引入var變數。

對於一線開發者來說,最大的幾個好處就是新版本的GC效率會有所提升,時間會大大縮減。HTTP Client用起來會更加方便。可以在Lambda表示式中使用var。

對於本次升級,你有什麼期待嗎?

來個投票吧

-END-

 近期熱文:

關注我

640?wx_fmt=jpeg

點選“閱讀原文”,看本號其他精彩內容