您的位置 首页 java

重磅来袭!Java 11将于本月25日发布,新特性抢先看

2017年8月, JCP 执行委员会提出将 Java 的发布频率改为每六个月一次。该决定将在Java 9正式发布之后开始实行。

2018年3月,Java 10如期而至。目前已经是2018年9月份,Java 11 即将于本月25日正式发布。

在openjdk的官网上,JDK 11目前处于 Release Candidate Phase (最终测试版本)

Release Candidate Phase ,就是软件开发声明周期中的RC版本,整个软件的上线周期一般会经历Alpha、Beta、RC、GA等几个版本。

通常来说,RC就是软件的候选版本,RC版基本不会再加入新的功能,主要用于除错。

所以,基本RC版本上面有的特性,就是正式版的特性了。openjdk的官网上新版本的JDK共有17个新特性:

简单介绍几个比较重要的新特性:

ZGC:可扩展的低延迟垃圾收集器

ZGC是一款号称可以保证每次GC的停顿时间不超过10MS的垃圾回收器,并且和当前的默认垃圾回收起G1相比,吞吐量下降不超过15%。

Epsilon:什么事也不做的垃圾回收器

Java 11还加入了一个比较特殊的垃圾回收器——Epsilon,该垃圾收集器被称为“no-op”收集器,将处理内存分配而不实施任何实际的内存回收机制。 也就是说,这是一款不做垃圾回收的垃圾回收器。这个垃圾回收器看起来并没什么用,主要可以用来进行性能测试、内存压力测试等,Epsilon GC可以作为度量其他垃圾回收器性能的对照组。大神Martijn说,Epsilon GC至少能够帮助理解GC的接口,有助于成就一个更加模块化的JVM。

增强 var 用法

Java 10中增加了本地变量类型推断的特性,可以使用var来定义 局部变量 。尽管这一特性被很多人诟病,但是并不影响Java继续增强他的用法,在Java 11中,var可以用来作为Lambda表达式的局部变量声明。

移除Java EE和 CORBA 模块

早在发布Java SE 9的时候,Java就表示过,会在未来版本中将Java EE和CORBA模块移除,而这样举动终于在Java 11中实施。终于去除了Java EE和CORBA模块。

HTTP客户端进一步升级

JDK 9 中就已对 HTTP Client API 进行标准化,然后通过JEP 110,在 JDK 10 中进行了更新。在本次的Java 11的更新列表中,由以JEP 321进行进一步升级。该API通过CompleteableFutures提供非阻塞请求和响应语义,可以联合使用以触发相应的动作。 JDK 11完全重写了该功能。现在,在用户层请求发布者和响应发布者与底层 套接字 之间追踪数据流更容易了,这降低了复杂性,并最大程度上提高了HTTP / 1和HTTP / 2之间的重用的可能性。

Java的类文件格式将被扩展

Java的类文件格式将被扩展,以支持新的常量池,CONSTANT_Dynamic。其目标是降低开发新形式的可实现类文件约束带来的成本和干扰

采用Curve25519和Curve448加密的密钥

采用Curve25519和Curve448加密的密钥交换比现有的Diffie-Hellman椭圆曲线密钥交换方式更有效、更安全。根据IETF的资料,Curve25519和Curve448两种椭圆曲线采用常量时间的实现方式,以及不会发生异常的数乘实现,能更好地抵抗各种旁路攻击,包括时序攻击、 缓存 攻击等。该提案的目标是为密钥交换方法提供一个API和实现,同时开发一个平台无关、纯Java的的实现。由于该提案采用了复杂且精密的模算数,因此还是有风险的

飞行记录仪(Flight Recorder)

将提供低开销的数据收集框架,用来调试Java应用程序和HotSpot JVM。飞行记录仪是Oracle的商业版JDK的功能,但在JDK 11中,其代码将移动到公开代码库中,这样所有人都能使用该功能了。Iclouded将作为API,以事件的形式产生或消耗数据,同时提供缓存机制、二进制数据工具,同时支持配置和事件过滤。该提案还提议为OS、HotSpot和JDK库提供事件

支持Unicode版本10

本次的这个版本的JDK,对于Java开发者的开发模式并没有很大的改变。既没有像Java 8一样开始支持 函数式编程 ,也没有像Java 10一样引入var变量。

实现ChaCha20和Poly1305 加密算法

ChaCha20是种相对较新的流加密算法,能代替旧的、不安全的R4流加密。ChaCha20将与Poly1305认证算法配对使用。ChaCha20和ChaCha20-Poly1305加密实现将通过crypto.CipherSpi API于SunJCE(Java加密扩展)中提供

对于一线开发者来说,最大的几个好处就是新版本的 GC效率会有所提升,时间会大大缩减 HTTP Client用起来会更加方便 可以在Lambda表达式中使用var

对了,你现在在用哪个版本,你还学的过来么?

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

文章标题:重磅来袭!Java 11将于本月25日发布,新特性抢先看

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

关于作者: 智云科技

热门文章

网站地图