作者:漫畫編程來源:漫畫編程

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

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

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

Java 11將於本月25日發佈,新特性一覽

release

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

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

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

JDK 11 新特性

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

Java 11將於本月25日發佈,新特性一覽

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。

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

相關文章