Java 16 是一个主要功能版本,它为 JAVA 带来了许多特定于 JVM 的更改和特定于语言的更改。它遵循 Java 发布日程推出 Java 10,并于 2021 年 3 月发布,距 Java 15 发布仅六个月。
Java 16 是非 LTS 版本。
Java16的新功能
以下是Java 16 中引入的主要新功能。
- JEP 338 : Vector API (Incubator) - 引入了新的 Vector API,允许开发人员显式执行向量操作。
- JEP 347 : 启用 C++14 语言特性- C++ 14 特性可以在带有 JDK 16 的 C++ 源代码中使用。
- JEP 357、JEP 369 : 从 Mercurial 迁移到 Git/GitHub - OpenJDK 源代码从 mercurial 迁移到 Git/GitHub
- JEP 376 : ZGC - 并发线程堆栈处理- Z 垃圾收集器通过将其线程堆栈处理从安全点移动到并发阶段来改进。
- JEP 380 : Unix 域套接字通道- SocketChannel 和 ServerSocketChannel 现在支持 Unix 域套接字。
- JEP 386 : Alpine Linux Port - 现在 JDK 可用于 Alpine Linux 和其他使用 musl 实现的 Linux 发行版。
- JEP 387 : Elastic Metaspace - 通过将未使用的 HotSpot 类元数据或元空间内存快速返回给操作系统来改进元空间内存管理,减少元空间占用空间并简化元空间代码。
- JEP 388 : Windows/AArch64 端口- 现在 JDK 可以在 AArch64、ARM 硬件服务器或基于 ARM 的笔记本电脑上运行。
- JEP 389 - Foreign Linker API (Incubator) - Java 代码可以被 C/C++ 调用,反之亦然,使用新的 API 代替 JNI。
- JEP 390 : 基于值的类的警告 - 如果基于值的类使用同步进行同步,则会引发警告。
- JEP 392 : Packaging Tool - jpackage 现在是标准而不是孵化器功能。
- JEP 393 :外部内存访问 API(第三孵化器) - 对外部内存访问 API 的小幅增强。
- JEP 394 : instanceof 的模式匹配 - instanceOf 的模式匹配现在是一个标准功能。
- JEP 395 : Record- Record属于标准功能。
- JEP 396 : 默认情况下强封装 JDK 内部- --illegal-access 选项的默认模式现在是拒绝。之前是允许的。
- JEP 397 : 密封类(第二次预览) - 密封类的小改进。
Java 16 使用新方法和选项增强了许多 API。我们将在下一章中看到这些变化。