Java 简明教程

Java 14 - New Features

Java 14 是一个重要的功能版本,它为 Java 带来了许多特定于 JVM 的更改和特定于语言的更改。它遵循从 Java 10 开始引入的 Java 发布节奏,并在 Java 13 发布后仅六个月的 2020 年 3 月 17 日发布。

Java 14 是一次非 LTS 发布。

New Features in Java 14

以下是 Java 14 中引入的主要新功能。

  1. JEP 361 − Switch Expressions − 现在支持标准功能,允许通过 yield 使用 return 值切换。

  2. JEP 368 − Text Blocks − 第二个预览功能,可轻松处理诸如 JSON、XML 之类多行字符串。

  3. JEP 305 − Pattern matching for instanceOf - instanceOf 运算符已增强,可以携带谓词。

  4. JEP 358 − NullPointerException message−NullPointerException 现在可以发送详细消息。

  5. JEP 359 − Records− 一个预览特性,引入了一个新类型记录。

  6. JEP 343 − Packaging Tool − 引入了基于 javapackager 的新打包器。

  7. JEP 345 − NUMA aware G1 − G1 垃圾收集器现在支持 NUMA。

  8. JEP 349 − JFR Event Streaming − jdk.jfr 模块中的 jdk.jfr.consumer 软件包已得到增强,可以异步订阅事件。

  9. JEP 352 − Non-Volatile Mapped Byte Buffers − 为引用非易失性内存 (NVM) 添加了新的文件映射模式。

  10. JEP 363 − CMS Garbage Collector Removed − Java 9 中已弃用的并发标记清除 (CMS) 垃圾收集器已被移除。

  11. JEP 347 − Pack200 Tools and API Removed − pack200 和 unpack200 工具以及 java.util.jar 中的 Pack200 API 已被移除。

  12. JEP 370 − Foreign-Memory Access API − 一个新 API,可以访问堆空间之外的外部内存。

Deprecation & Removals

以下是 Java 14 中的弃用和删除列表:

Deprecations

  1. Solaris and SPARC Ports (JEP 362) − 因为这个 Unix 操作系统和 RISC 处理器在过去几年里没有活跃开发。

  2. ParallelScavenge + SerialOld GC Combination (JEP 366) − 因为这是一组很少使用的 GC 算法组合,并且需要大量的维护工作。

Removals

  1. Concurrent Mark Sweep (CMS) Garbage Collector (JEP 363) − 此 GC 在 Java 9 中已弃用,并被 G1 取代为默认 GC。还有其他高性能的选择,如 ZDC、Shenandoah。此 GC 已保留 2 年,以便感兴趣的用户进行维护。因为没有活跃的维护,此 GC 已从 Java 14 中完全移除。

  2. Pack200 Tools and API (JEP 367) − 这些压缩库在 Java 5 中引入,在 Java 11 中已弃用。现在这些库已从 Java 14 中完全移除。