Java 14 进入 Rampdown 阶段,所有特性已冻结

2020 年 1 月 9 日 InfoQ

作者丨Ben Evans

译者丨刘雅梦

Java 14 的发布过程已经开始。JDK 14 现在处于 Rampdown 第一阶段,这意味着整个特性集已被冻结,并且此发行版不再涉及其他特性。

与以往的 Java 版本一样,JEP(Java Enhancement Proposals,Java 增强提案)列表构成了该新版本的内容。最终确定的特性如下:

  • JEP 345:NUMA-Aware Memory Allocation for G1 (针对 G1 的 Numa-aware 内存分配)

  • JEP 349:JFR Event Streaming (JFP 事件流)

  • JEP 352:Non-Volatile Mapped Byte Buffers (非易失性映射字节缓冲区)

  • JEP 358:Helpful NullPointerExceptions (有用的空指针异常处理)

  • JEP 361:Switch Expressions (Standard) (标准版 Switch 表达式)

还有两个 JEP 是涉及在其他平台上进行 ZGC 垃圾收集器到达处理的:

  • JEP 364:ZGC on macOS (macOS 上的 ZGC)

  • JEP 365:ZGC on Windows (Windows 上的 ZGC)

接下来的几个 JEP 是预览版或孵化特性相关的:

  • JEP 305:Pattern Matching for instanceof (Preview) (预览版 instanceof 模式匹配 )

  • JEP 343:Packaging Tool (Incubator) (孵化器:打包工具)

  • JEP 368:Text Blocks (Second Preview) (第二次预览版文本块)

  • JEP 370:Foreign-Memory Access API (Incubator) (孵化器:外部内存访问 API)

  • JEP 359:Records (Preview) (预览版 记录类型)

这组 JEP 可能比最初出现时更有趣:它实际上包含了两个重要的构建块,这两个构建块组成了 Java 的主要新特性。

记录类型特性本质上是将命名元组引入到 Java 中,并且它是代数数据类型(algebraic data types,其他语言中的称谓)特性的前半部分。它的另一半是密封类型(sealed types)特性,密封类型对应于 JEP 360 ,并且尚未在任何版本中发布。

未来特性的另一个构建块是 JEP 305(“ instanceof 模式匹配 ”)。乍一看,这个特性似乎非常小,因为现在它只是在使用“instanceof”操作符时减少了难看的强制类型转换样板代码:

if (obj instanceof String s) {    //  这里可以使用 s} else {    // 这里不能使用 s}

虽然这个特性看起来微不足道,但它的真正威力始终会在未来版本的 Java 中体现出来。switch 表达式特性(也已作为 Java 14 的一部分进行了标准化)将用于构建 JEP 305 以生成通用模式匹配,这是一个主要的新特性,特别是与代数数据类型结合使用时。

最后,是一组不能严格说是特性的 JEP,因为它们仅处理功能的弃用或移除。

  • JEP 362:Deprecate the Solaris and SPARC Ports (弃用 Solaris 和 SPARC 端口)

  • JEP 366:Deprecate the ParallelScavenge + SerialOld GC Combination (弃用 ParallelScavenge + SerialOld GC 组合)

  • JEP 363:Remove the Concurrent Mark Sweep (CMS) Garbage Collector (移除并发标记清除(CMS)垃圾收集器)

  • JEP 367:Remove the Pack200 Tools and API (移除 Pack200 工具和 API)

在某种程度上,这意味着 JDK 14 是一个可悲的里程碑:它标志着 Java 在 Solaris 上走到了尽头,Solaris 是 Java 技术首次出现时的平台,早在 1995 年,它作为 Java 技术的第一个公开发行版本的一部分而首次亮相。

CMS 收集器的移除也是值得注意的。对于几乎所有的现代工作负载,G1 的性能与 CMS 相当,甚至更好(经过很长一段时间的成熟和稳定之后)。然而,仍然存在一小部分低延迟、对暂停敏感的应用程序既无法忍受 G1 的暂停阈值,也无法支付像 Shenandoah 或 ZGC 等收集器的性能开销。没有针对这些工作负载的解决方案,实际上,它们必须保留在 Java 11 上才能在中短期内得到支持。

总的来说,虽然 Java 14 包含的主要特性仅在预览状态下发布,但它代表平台向前迈出了重要一步。确实,到目前为止,Java 市场还没有看到非 LTS 版本的大量使用,因此 Java 14 能否被极大程度地采用还有待观察。

随着 Java 14 特性的冻结和缩减,Java 开发库的主线现在已转向了 Java 15(该版本将于 2020 年 9 月上市)。

原文链接:

https://www.infoq.com/news/2019/12/java14-feature-freeze/

点个在看少个 bug 👇

登录查看更多
0

相关内容

Java 是一门编程语言,拥有跨平台、面向对象、泛型编程等特性。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】C++20 特性 第二版,A Problem-Solution Approach
专知会员服务
58+阅读 · 2020年4月26日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
已删除
AI掘金志
7+阅读 · 2019年7月8日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
官方解读:TensorFlow 2.0中即将到来的所有新特性
机器之心
5+阅读 · 2019年1月15日
Python3.8新特性概览
Python程序员
4+阅读 · 2018年12月8日
6大最常用的Java机器学习库一览
AI前线
4+阅读 · 2018年10月9日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】C++20 特性 第二版,A Problem-Solution Approach
专知会员服务
58+阅读 · 2020年4月26日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
相关资讯
已删除
AI掘金志
7+阅读 · 2019年7月8日
使用 C# 和 Blazor 进行全栈开发
DotNet
6+阅读 · 2019年4月15日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
官方解读:TensorFlow 2.0中即将到来的所有新特性
机器之心
5+阅读 · 2019年1月15日
Python3.8新特性概览
Python程序员
4+阅读 · 2018年12月8日
6大最常用的Java机器学习库一览
AI前线
4+阅读 · 2018年10月9日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Top
微信扫码咨询专知VIP会员