前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 11 新功能来了!

Java 11 新功能来了!

作者头像
Tanyboye
发布于 2018-07-02 03:52:31
发布于 2018-07-02 03:52:31
1.1K0
举报

原文: https://www.infoworld.com/article/3265447/java/java-11-roadmap-the-new-features-you-can-expect.html 译者:弯月,责编:言则

关键时刻,第一时间送达!

目前 Oracle 已经发布了 Java Development Kit 10,下个版本 JDK 11 也即将发布。本文介绍 Java 11 的新功能。

根据Oracle新出台的每6个月发布一次Java SE的节奏,Java 11将于2018年9月发布,迄今为止Oracle已经宣布了好几个新功能。

此外,Java 11还将删除一些功能,其中包括删除CORBA和Java EE(最近更名为Jakarta EE)模块,以及删除JavaFX。

与JDK 10不同,JDK 11将提供长期支持,还将作为Java平台的参考实现以及标准版(Java SE)11。Oracle直到2023年9月都会为JDK 11提供一级支持,而补丁和安全警告等扩展支持将延续到2026年。新的长期支持版本每三年发布一次,根据后续的发行计划,JDK 17将于2021年发布。

Java 11 JDK中已计划的新功能

目前来看,JDK 11已有九个已经确认的新功能,而且还有更多新功能仍在考虑之中。计划的新功能包括:

HTTP客户端(标准),这个功能于JDK 9中引入并在JDK 10中得到了更新,现在终于转正了。该API通过CompleteableFutures提供非阻塞请求和响应语义,可以联合使用以触发相应的动作。自从JDK 9和10中引入该功能后,JDK 11完全重写了该功能,现在其实现完全是异步的。RX Flow的概念也得到了实现,这样就无需为了支持HTTP/2而创造许多概念了。现在,在用户层请求发布者和响应发布者与底层套接字之间追踪数据流更容易了。这降低了复杂性,并最大程度上提高了HTTP/1和HTTP/2之间的重用的可能性。

Epsilon垃圾回收器,被称为“no-op”回收器,它仅负责内存分配,却没有实现任何实际的内存回收机制。Epsilon回收器可以用于性能测试、内存压力测试虚拟机接口。它还可以用于短生命周期的任务。

lambda参数的局部变量语法,可以消除隐含类型表达式中正式参数定义的语法与局部变量定义语法的不一致。这样就能在隐含类型的lambda表达式中定义正式参数时使用var了。

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

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

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

更新platform API以支持Unicode版本10.0,从而使Java跟上潮流。预计以下的类将支持:

lang包中的Character和String

awt.font包中的NumericShaper

text包中的Bidi、BreakIterator和Normalizer

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

增强Java启动器,使之能够运行单一文件的Java源代码,使得应用程序可以直接从源代码运行。单文件程序常见于小型工具,或开发者初学Java时使用。而且,单一源代码文件有可能会编译成多个类文件,这会增加打包开销。由于这些原因,在运行程序之前进行编译,已成为了不必要的步骤。

Java JDK 11仍在开发中的新功能

Java 11的创建者们还在考虑几个对JDK 11的变更或新功能的提案:

给Java添加raw字符串字面值。这样可以更容易地以人类可阅读的形式书写字符序列,而无需特殊的Java标记。这样也能更容易地将非Java语法的字符串提供给Java使用,还能支持多行字符串,而无需使用特殊的标记。

扩展switch语句,使之能作为语句或表达式使用。这样还能改进switch处理null值的方式。这些改动可以简化编程,同时为switch支持模式匹配做准备。

嵌套的访问控制,对应于Java当前的嵌套类型。嵌套可以让逻辑上属于同一代码实体但被编译到不同的类文件中的类互相访问对方的私有成员,而无需让编译器插入扩大访问权限的方法。

JDK 11删除的功能

Java EE和CORBA模块从Java SE9就成了不推荐使用(deprecated),并计划在未来的版本中删除。这个未来版本就是JDK 11。

Java SE 6于2006年12越发布,它为Java EE平台提供了整套的Web服务技术栈:JAX-WS(Java API for XML-based Web Services),JAXB(Java Architecture for XML Binding),JAF(JavaBeans Activation Framework),以及Common Annotations for Java。这些年来,Java EE版本在不断进化,这给Java SE造成了许多麻烦,例如加入与Java SE无关的技术,以及同时维护两个Java版本的困难变得更大。由于独立的Java EE版本由第三方网站提供,Oracle说Java SE或JDK中已经没有必要提供Java EE了。

当然,一些依赖于JDK中的Java EE API及工具的应用程序将无法编译或运行。将JDK 6、7或8移植到新版本时将会产生二进制不兼容和源代码不兼容。Oracle说,受到这些影响的开发者可以部署相应的Java EE版本。

CORBA来自于二十世纪九十年代,Oracle说,现在用CORBA开发现代Java应用程序已经没有意义了,维护CORBA的成本已经超过了保留它带来的好处。

但是删除CORBA将使得那些依赖于JDK提供部分CORBA API的CORBA实现无法运行。目前还没有第三方CORBA版本,也不确定是否会有第三方愿意接手CORBA API的维护工作。

JavaFX已经被移除,因此已经与Java JDK每年两次的更新无关。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术学习之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java JDK 11:现在可以使用所有新功能
Java Development Kit(JDK)11现已普遍可用,可供生产使用,提高了工作效率,并提供了实现HTTP / 2的HTTP客户端API。
gemron的空间
2019/11/04
2.1K0
Java 11 新特性解读(1)
北京时间2018年9月26日,Oracle官方宣布Java 11正式发布。这是Java大版本周期变化后的第一个长期支持版本,非常值得关注。从官网即可下载,最新发布的Java11将带来ZGC、Http Client等重要特性,一共包含17个JEP(JDK EnhancementProposals,JDK增强提案)。其实,总共更新不止17个,只是我们更关注如下的17个JEP更新。
一个风轻云淡
2023/10/15
3420
Java 11 新特性解读(1)
Java 11新特性
美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这是自 Java 8 后的首个长期支持版本,将支持到2026年,可以使用下面的地址进行下载:Java 11官方下载
xiangzhihong
2022/11/30
6840
JDK11介绍
做为java开发JDK的更新内容是必须要关注的,这里我把JDK11的相关的JEP(JDK Enhancement Proposals),汇总并偿试了一下。 分享一下相关的改进点。 历史所有JEP:http://openjdk.java.net/jeps/0
潇洒
2023/10/20
4070
Java 11 新特性
java 11 是继 java8 之后的第一个LTS版本。因此有必要针对它进行一些深入的学习,虽然短时间内java8 还是主流版本。当然,如果从java8基础上升级,几乎可以确定目标就是java11。
pollyduan
2019/11/04
1.5K0
重磅:JDK11正式发布!史上最全所有特性完整解读!
千呼万唤,JDK11于2018-09-25正式发布!你是不是和笔者一样还在使用JDK8呢?甚至有些开发者还在使用JDK7!没关系,让我们先一睹JDK11的风采。
张哥编程
2024/12/19
1950
重磅:JDK 11 正式发布!东半球第二全特性解读!
千呼万唤,JDK11于2018-09-25正式发布!你是不是和笔者一样还在使用JDK8呢?甚至有些开发者还在使用JDK7!没关系,让我们先一睹JDK11的风采。
芋道源码
2018/10/26
5730
JVM中8种垃圾收集器小结
2011-07-28 发布,这是 sun 被 oracle 收购(2009 年 4 月)后的第一个版本,主要更新内容:
开源日记
2020/12/30
7850
回顾Java 8 9 10的新特性,展望即将来临的11和明年的12【大牛经验】
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议纪录;
Java帮帮
2018/09/29
3.3K0
回顾Java 8 9 10的新特性,展望即将来临的11和明年的12【大牛经验】
JDK的版本迭代(JDK9 - JDK20)
这意味着Java的更新从传统的以特性驱动的发布周期,转变为以时间驱动的发布模式,并且承诺不会跳票。通过这样的方式,开发团队可以把一些关键特性尽早合并到 JDK 之中,以快速得到开发者反馈,在一定程度上避免出现像 Java 9 两次被迫延迟发布的窘况。
鱼找水需要时间
2023/05/11
1.8K0
JDK的版本迭代(JDK9 - JDK20)
一文通晓Java历史各版本新特性
Java 作为一门经久不衰的语言,已经发展了20多年,本文简单罗列了各个版本的一些重要特性。大家可以根据自己公司需要,选择合适的版本。
微观技术
2020/08/20
1.2K0
来,教你从 Java 8 升级到 Java 11
Unicode 10(version 10.0 of the Unicode Standard),Unicode是一个不断在演进的行业标准,Java一直在与它保持一致兼容。
Java技术栈
2019/12/03
2.6K0
idea工具 maven构件项目的时候,提示程序包javax.xml.ws.soap不存在
使用idea的工具构件maven项目出现:程序包javax.xml.ws.soap不存在
玖柒的小窝
2021/09/18
1.3K0
idea工具 maven构件项目的时候,提示程序包javax.xml.ws.soap不存在
Java各版本特性一览-从Java1.0到Java12
初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢。
老九学堂-小师弟
2019/10/09
1.3K0
Java 11 发布计划来了,已确定 3个 新特性!!
原文:https://www.infoworld.com/article/3265447/java/java-11-roadmap-the-new-features-you-can-expect.html 译文:https://www.oschina.net/news/94579/java-11-roadmap-the-new-features-you-can-expect Oracle 已经发布了 Java Development Kit 10,下一个版本 JDK 11 也在准备之中了。按照 Java 新
Java技术栈
2018/06/04
7610
最通俗易懂的 Java 11 新特性讲解
大多数开发者还是沉浸在 Java 8 中,而 Java 14 将要在 2020 年 3 月 17 日发布了,而我还在写着 Java 11 的新特性。Java 11 是 Java 8 之后的第一个 LTS 版本,但是也自从 Java 11 开始, Oracle JDK 不再可以免费的用于商业用途,当然如果你是个人使用,或者是使用 Open JDK ,那么还是可以免费使用的。
未读代码
2020/03/11
5.2K0
Java版本历史「建议收藏」
Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包。从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JCP使用Java规范请求(Java Specification Requests,JSRs)来建议和定义对Java平台内容的新增和修改。Java语言由Java语言规范(Java Language Specification,JLS)定义,对JLS的更改则根据JSR 901(页面存档备份,存于互联网档案馆)管理。
全栈程序员站长
2022/09/08
2.8K0
Java版本历史「建议收藏」
JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK11特性讲解】
  2018年9月26日,Oracle官方发布JAVA11.这是JAVA大版本周期变化后的第一个长期支持版本,非常值得关注.最新发布的JAVA11将带来ZGC HttpClient等重要特性,一共17个需要我们关注的JEP,参考文档http://openjdk.java.net/projects/jdk/11/
用户4919348
2022/12/09
1K0
JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK11特性讲解】
现代密码学实践指南[2015年]
本文介绍目前现代密码学的最先进技术, 前半部分主要翻译自 《Cryptographic Right Answers》,附上收集的资料,和byron个人的理解。
byronhe
2021/06/25
1.1K0
几个开源 RUST 安全算法库
这段时间把 RUST 语法过了一遍,写一些简单的 Demo 程序没啥问题了,但离掌握这门语言还差的远,需要项目实战才行。我决定从之前研究过的国密算法入手,使用 RUST 实现国密算法。
云水木石
2023/10/08
2.4K0
几个开源 RUST 安全算法库
推荐阅读
相关推荐
Java JDK 11:现在可以使用所有新功能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档