Java開發:基本的Java 9功能你可能從未聽說過

編程語言 Java FLOW GCC 我愛資源庫 我愛資源庫 2017-08-28

Java開發:基本的Java 9功能你可能從未聽說過

Java 9將在2017年9月發佈,它將修改一系列的特點,方法,和其他元素。在我們通過搜索JDK的改進方案(JEP)時,我們碰到的JEP 266。它對複雜的Future、併發更新和響應式流的支持進行了一些有趣的更新,引起了我們的注意。

在下面的文章我們將深入探討JEP 266,看看它所提供的改進,並討論一個非常有趣的特性,肯定會是一個最常用的Java 9特性之一。讓我們一起去看看吧。

即將到來的 Java 9

由Oracle起草的JDK增強建議(JEP)之一是JEP 266:更多併發更新。雖然這個名字可能聽起來並不是那麼高大上,但它擁有一些更新,可以解決併發和並行性中的有趣問題,需要在這些庫中進行更新。

修改和更新將是:

1.支持響應式流發佈 - 訂閱框架的接口

2.對CompletableFuture API的一般改進,例如支持延遲,超時,子類化和其他方法

3.一般的改進,如小調整和javadoc規格改寫

我們首先注意到的是Java 9將支持Reactive Streams。這是Java社區提出的一項計劃,旨在提高開發人員的併發工作流程。第二件事是用於CompletableFuture API的幾個修補程序。

Java開發:基本的Java 9功能你可能從未聽說過

響應式流

JDK9中的Flow API對應響應式流規範,響應式流規範是一種事實標準。JEP 266包含了一組最小接口集合,這組接口能捕獲核心的異步發佈與訂閱。希望第三方能夠實現這些接口,並且能共享其方式。

java.util.concurrent.Flow包含以下4個接口:

* Flow.Processor(處理器)

* Flow.Publisher(發佈者)

* Flow.Subscriber(訂閱者)

* Flow.Subscription(訂閱管理器)

這些接口都支持響應式流發佈-訂閱框架。Java 9也提供了實用類SubmissionPublisher。一個發佈者產生一個或多個物品,這些物品由一個或多個消費者消耗。並且訂閱者由訂閱管理器管理。訂閱管理器連接發佈者和訂閱者。

Flow類允許相互關聯的接口和靜態方法來建立流控制的組件,其中Publishers生成由一個或多個訂閱服務器消費的每個消息,每個訂閱者都由一個訂閱管理。

這裡的另一個元素是Flow.Subscriber,它可以異步工作,並被請求觸發。它可以從Flow.Subscription請求多個元素,可以根據需要定義緩衝區大小。

這些接口適用於併發和分佈式異步設置,並且它們之間的通信依賴於一種簡單的流控制形式,可用於避免資源不足的問題。

CompletableFuture的新功能

Java 8中CompletableFuture,實現了Future <T>接口。

CompletableFuture具有實現Future對象的兩個主要功能。它可以通過調用complete()方法而無需任何同步等待來顯式完成。並且它允許在一系列操作中構建管道數據流程。

這樣,任何類型的值在將來都可以使用默認返回值,即使計算未完成,也會默認/中間的結果。

其他

  1. 輕量級的json文本處理api

  2. 移除很多已經被過期的GCC回收器(是移除哦,因為在Jdk 8 中只是加了過期的標記)

  3. 使用G1垃圾回收器作為默認的垃圾回收器

  4. HTML5風格的java doc

  5. java doc只是智能搜索功能

  6. javascript的引擎得到了進一步的升級

  7. 引入了SHA-3的hash算法

Java開發:基本的Java 9功能你可能從未聽說過

最後來杯咖啡吧

Java 9即將為java帶來一些主要的動力,包括有趣的方法和工作流,這些方法和工作流必將使Java更加出色。 小編認為JEP 266是最有趣的更新之一,因為它包含了一個來自社區本身的計劃,旨在幫助開發人員解決異步流處理中的一些最大問題。 我們都是為了這個,而還有不到一個多月就推出Java 9,讓我們共同期待吧!

相關推薦

推薦中...