Java 简明教程

Java 16 - New Features

Java 16 是一次重大的功能发布,它为 JAVA 带来了许多特定于 JVM 的更改和特定于语言的更改。它遵循从 Java 10 开始引入的 Java 发布节奏,并于 2021 年 3 月发布,仅在 Java 15 发布六个月后发布。

Java 16 不是一个 LTS 版本。

New Features in Java 16

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

  1. JEP 338 - Vector API (Incubator) − 引入了新的 Vector API,允许开发人员显式执行矢量运算。

  2. JEP 347 - Enable C14 Language Features − 可以使用 JDK 16 在 c++ 源代码中使用 C 14 特性。

  3. JEP 357, JEP 369 - Migrate from Mercurial to Git/GitHub − OpenJDK 源代码从 mercurial 被移至 Git/GitHub

  4. JEP 376 - ZGC - Concurrent Thread-Stack Processing − Z 垃圾回收器通过将它的线程堆栈处理从安全点移到并发阶段进行了优化。

  5. JEP 380 - Unix-Domain Socket Channels − SocketChannel 和 ServerSocketChannel 现在支持 Unix 域套接字。

  6. JEP 386 - Alpine Linux Port − 现在 JDK 可用于 Alpine Linux 和使用 musl 实现的其他 Linux 发行版。

  7. JEP 387 - Elastic Metaspace − 元空间内存管理通过将未使用的 HotSpot 类元数据或元空间内存快速返回给操作系统而得到改善,减小了元空间占用,并简化了元空间代码。

  8. JEP 388 - Windows/AArch64 Port − 现在 JDK 可以在 ARM 硬件服务器或基于 ARM 的笔记本电脑上的 AArch64 上运行。

  9. JEP 389 - Foreign Linker API (Incubator) − 现在可以使用新的 API 调用 C/C++ 或反之亦然的 Java 代码,从而替代了 JNI。

  10. JEP 390 - Warnings for Value-Based Classes − 如果使用 synchronize 同步基于值的类,则会引发警告。

  11. JEP 392 - Packaging Tool − jpackage 现在是一个标准,而不是孵化器特性。

  12. JEP 393 - Foreign-Memory Access API (Third Incubator) − 对外存访问 API 进行了一些小的增强。

  13. JEP 394 - Pattern Matching for instanceof − instanceOf 的模式匹配现在是一个标准特性。

  14. JEP 395 - Records − record 现在是一个标准特性。

  15. JEP 396 - Strongly Encapsulate JDK Internals by Default − --illegal-access 选项的默认模式现在是拒绝。之前是允许。

  16. JEP 397 - Sealed Classes (Second Preview) − 对密封类的轻微增强。