查看原文
其他

2018 年 Java 平台发布计划之新特性展望

2018-01-14 开源中国 开源中国


编译自:Looking Forward to Java in 2018

译者:开源中国


过去一年 Java 发生了许多变化,其中一部分原因在于推迟了一年的 Java 9 的推出。但是,随着时间的推移,人们发现,比起 Java 9 的推出,Java 版本发布周期的变更意义更为重大。



前段时间公布的 JDK 版本发布计划显示,Java 发布周期变更为每六个月一次,这意味着 2018 年 Java 将发布两个 Java 版本。第一个版本是 Java 10,第二个版本是 Java 11。


相关阅读:https://www.oschina.net/news/90556/new-version-scheme-java


考虑到新版本的推出将严格遵循时间线,预计每个新版本发布的 Java 特性将比起之前有所缩减。也就是说,Java 10 的新特性会比之前版本的新特性要少。


之前的文章还对 Java 10 的新特性进行了解密


至于 Java 11 将会有哪些新功能,目前还无法确定。我们只是将以下功能纳入了考虑范围内:


  • Epsilon。一种对 Null 垃圾回收算法的参考实现。

  • Dynamic Class File Constants 。一种主要针对软件库作者及使用动态特性(invokedynamic)的高级开发人员的平台特性。

  • 运行时追踪 JIT 编译事件


随着发布日期临近,该特性列表后续一定会被补充。不过,该列表目前还未提及 Java 值类型。这也不奇怪,因为实现值类型需要对 Java 语言本身和运行时做出重大更新,还要对 Java 类型系统进行重构。


虽然当前原型已经工作,但要特性交付还需要花很长一段时间。当前的状态至适用于低级别的平台开发者,和一些惯于使用反射或 MethodHandle 工具的开发者。虽然值类型将作为 Java 11 的一部分发布,但 Oracle 尚未透露任何有关该特性预期发布时间的消息。


如果值类型并未作为 Java 11 特性发布,这将会产生连锁反应。包含值类型的首个长期支持(LTS)版本将不会在 2021 年 9 月前发布。


Java 11 中是否会有数据类(data classes)还不确定。Java 语言架构师 Brian 

Goetz 曾这样说道:


数据类将用于解决类的表示与 API 合约间存在的复杂间接关系。通过使用数据类,编译器可以填入一些普通类成员


数据类提案与 Scala 的 Case 类有些相似。Goetz 表示,数据类的设计可能会有一些变动,它的整体语义会比我们现在看到的更加深入。目前的数据类概念在开发过程中与模式匹配功能相联系,但是它们有可能在不同的版本中提供。


与以上两个特性相关的是,未来可能会对 Switch 形式做改进,Switch 语句块将可作为表达式或声明使用。该特性有望在 Java 11 实现,但目前看来,仍然是一个 JEP 草案。


预定在 9 月发布的版本,其特性全部完成时间是 2018 年 6 月。因此,我们还需要等待数月,才能看到 Java 11 的整体形态。



推荐阅读

《绝地求生》外挂源代码被公布,或迎神仙大战时代?

2017 开源中国新增开源项目排行榜 TOP 100

Intel 芯片曝重大缺陷:主流 OS 全中招,紧急采取补救措施

TIOBE 年度榜单揭晓!C 语言成功逆袭摘得桂冠

2018 年 Linux 八大发展预测,Ubuntu 将主宰物联网

点击“阅读原文”查看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存