40天后Java 11将推出的功能有哪些,它们与Java 9和10的不同之处是什么?

Java 11中即将推出的功能有哪些,它们与Java 9和10的不同之处是什么?

Java 10可能是块中的新手,但现在已经是时候谈论Java 11. Oracle向更快的发布周期迈进意味着更多的功能和能力正在以前所未有的速度发展。

虽然我们还有6个月的时间才会发布Java 11,但我们已经可以看到我们的方式,看看我们如何适应。我们还可以了解是否应该升级到Java 9,10,或者我们是否应该等待Java 11。

让我们来看看。

Java 11中有什么新东西?

Java 11的发布日期定于2018年9月,并且该存储库目前已开放以进行错误修复,以及更多JDK增强建议(JEP)的提议将添加到即将发布的版本中。虽然该列表不是最终的,但已经有4个提案计划用于下一个版本:

1. Lambda参数的本地变量语法(JEP 323)

在声明隐式类型lambda表达式的形式参数时,此JEP将允许使用var。这里的目标是将局部变量声明的语法与隐式类型的lambda表达式中的形式参数声明的语法对齐。这样,而不是写这个:

(x,y) – > x.process(y)

我们可以写:

(var x,var y) – > x.process(y)

这扩展了Java 10 Local Variable Type Inference,它引入了一种新的语法,可以减少与编写Java相关的冗长,同时保持对静态类型安全的承诺。

换句话说,您将能够声明变量而无需指定关联的类型。与上面显示的示例类似,Java 10将提供以下简单的声明:

var list = new ArrayList <String>(); var stream = getStream();

这将取代现有的,如下所示:

List <String> list = new ArrayList <String>(); Stream <String> stream = getStream();

2. Epsilon:一个任意低开销的垃圾收集器(JEP 318)

这个JEP的官方名称是“No-Op垃圾收集器”,其目的是开发一个处理内存分配的垃圾收集器,而不实现任何实际的内存回收机制。

3.动态类文件常量(JEP 309)

此JEP希望扩展Java类文件格式以支持新的常量池形式CONSTANT_Dynamic。这里的目标是通过创建一个可以使用用户提供的行为进行参数化的新的常量池形式来降低创建新形式的可实现类文件常量的成本和中断。

4.删除Java EE和CORBA模块(JEP 320)

在Java SE 9中Java EE和CORBA模块的折旧之后,这些模块将从整个Java SE平台和SDK中删除。这更像是一个清理过程,跟进了Java 9中开始的过程。

Java 11将包含的不仅仅是功能

虽然这个功能列表仍然不是最终的,我们期望在接下来的几个月中添加更多的JEP,但Java 11会有一些额外的东西。Java 11将带来的主要亮点之一是该平台的长期支持。为了理解它的含义,让我们回到2017年9月,当时甲骨文宣布它将转向他们的Java SE产品的长期支持(LTS)模型

到目前为止,Oracle已尝试将同一版本用于两种不同的需求。一方面,公司希望专注于创新,尽快发布功能,而不是每次发布都等待2 – 3年。另一方面,他们还希望为需要他们可以信赖的产品的用户提供稳定性。

与其他领先公司类似,甲骨文希望快速发展。转向更快的发布周期将使公司能够进行创新,并为团队和公司提供更快的移动能力。

但是,快速发布版本的责任是为用户保持平台可靠性。甲骨文表示,该公司很难为即将推出的所有版本提供LTS。这就是为什么公司决定每3年提供一次LTS(或每6个版本提供一次)。

向更快的发布周期迈进是大型公司正在采用的工作流程,希望以更快的速度进行创新,但需要确保在此过程中不会损害其可靠性。我们已经介绍了工程团队如何通过改进他们的CI / CD流程,编写代码以及在将代码部署到生产后监控应用程序来弥合两者之间的差距。您可以在这里阅读更多相关信息,或下载电子书

“长期支持”是什么意思?

Oracle的LTS支持主要关注两个要点。第一个是Premier支持,它从一般可用日期起为您的Oracle数据库,Oracle融合中间件和Oracle应用程序提供维护和软件升级五年。

第二个产品称为“持续支持”,其中包括使用Oracle软件时的维护,访问Oracle在线支持工具,升级权限,预先存在的修复以及技术支持专家的帮助。这些要素对企业公司至关重要,甚至对其中一些公司至关重要。

如果您问为什么Oracle决定在3年的差距,那是因为它是Java版本之间的平均发布时间(或更确切地说,它曾经是平均发布时间)。

事实上,Java 11将提供LTS,将提供此支持的下一个版本将在2021年9月发布,目前代号为21.9。如果您仍在使用旧版本的Java,请不要担心,因为Oracle声称对Java 6,7和8的支持将继续用于当前的计划。

更新:如Azul Systems副首席技术官Simon Ritter在评论部分所述,“LTS更新仅适用于拥有Oracle商业支持合同的客户。JDK 11的公开更新与JDK 9以后的所有其他版本的更新将在下一个版本发布六个月后停止。“

这进一步验证了Nicolai Parlog博客,在那里他展示了Java即将推出的版本的发布地图。正如您在下图中看到的那样,Java 10似乎将是最后一个免费的Oracle JDK。正如Nicolai指出的那样,用户要么付费才能使用未来的JDK版本,要么依赖OpenJDK:

来源:Oracle(通过CodeFX Weekly

最后的想法

Java 9的发布标志着Java平台演变的开始。起初,我们得到了Jigsaw项目,看到了我们思考和构建大规模应用程序的方式的革命。Java 10即将引入本地变量类型推断并帮助向Java添加一些语法糖,Java 11带有上述所有功能,以及对平台的长期支持。

这并不一定意味着您应该等待Java 11,但这确实意味着Java和Oracle正在改变他们的调整。公司正在投资其每一个优势 – 创新和稳定 – 这一事实是令人敬畏的新闻,我们毫无疑问会有更多好消息传来。

来源:https://blog.takipi.com/java-11-will-include-more-than-just-features/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

史上最全,0基础快速入门Python

首先,在学习之前一定会考虑一个问题——Python版本选择 对于编程零基础的人来说,选择Python3。 ? 1、学习基础知识 首先,Python 是一个有条理...

53240
来自专栏IT大咖说

降低大数据开发难度,轻量级计算实例

内容来源:2018 年 1 月 27 日,润乾软件创始人蒋步星在“TECH INSIGHT 暨 ArchData技术峰会成都站”进行《轻量级大数据引擎》演讲分享...

11540
来自专栏Crossin的编程教室

给新同学:编程教室资源索引

本编程教室建号四年多,已经发布了数百篇教程和文章,并且还分享了不少资源和习题。不过最近新加入的同学可能会找不到以前的内容,所以我们定期整理一下,方便大家使用。 ...

34060
来自专栏日常学python

烂代码&7点建议

每种编程语言、每个框架都有自己的一套编码规范和编码最佳实践方式,例如 PEP8 是 Python 语言的编码规范,作为 Python 开发者,每个人至少要将 P...

10400
来自专栏腾讯移动品质中心TMQ的专栏

测试分析?就这么简单!

什么是测试分析? 在软件测试过程中,以最小的成本将软件质量风险降至最低,这就是精准测试。宏观上,测试分析是响应精准测试的实践,贯穿整个测试过程,并对整个测试过程...

30490
来自专栏Golang语言社区

【Go 语言社区】Golang(Go语言)的三大设计目标

1.编译快 2.运行快 3.容易写 一般语言都只满足其中一两者,但是Go语言却找到了一个平衡点,同时满足这三个要求。目前比较适合做相对底层一点的东西,比如云计算...

379100
来自专栏不二小段

【QQ/微信个人号变身机器人】炸群+远程监控个人PC的尝试

最近简直惰怠。公众号的粉丝都开始负增长了。 其实一直没有闲着,只不过没写成文字。大家可以在优酷关注我的账号:不二小段,我会把日常一些探索录屏给大家。 今天来简单...

75970
来自专栏编程

5个酷毙的Python工具

工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来...

25680
来自专栏王清培的专栏

.NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(一)

阅读目录: 1.开篇介绍 2.Model与View的使用关系(数据上下文DataContext与View呈现) 3.Metadata元数据驱动设计(如何使用中间...

21860
来自专栏Java架构

Java程序员从阿里、京东面试回来,这些面试题你会吗?

最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东-美团),面试回来之后会发给我一些面试题。有些朋友轻松过关拿到offer,但是有一些是来询问我答案的...

14620

扫码关注云+社区

领取腾讯云代金券