您的位置 首页 java

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.一般的改进,如小调整和 Java doc规格改写

我们首先注意到的是Java 9将支持Reactive Streams。这是Java社区提出的一项计划,旨在提高开发人员的并发工作流程。第二件事是用于CompletableFuture API的几个修补程序。

响应式流

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 9即将为java带来一些主要的动力,包括有趣的方法和 工作流 ,这些方法和工作流必将使Java更加出色。 小编认为JEP 266是最有趣的更新之一,因为它包含了一个来自社区本身的计划,旨在帮助开发人员解决异步流处理中的一些最大问题。 我们都是为了这个,而还有不到一个多月就推出Java 9,让我们共同期待吧!

文章来源:智云一二三科技

文章标题:Java开发:基本的Java 9功能你可能从未听说过

文章地址:https://www.zhihuclub.com/186748.shtml

关于作者: 智云科技

热门文章

网站地图