Java 16 概述
Java 16是一个重要的特性发布,它为JAVA带来了许多JVM特定的更改和语言特定的更改。它遵循了自Java 10以来引入的Java发布步调,并于2021年3月发布,仅在Java 15发布后的六个月内发布。
Java 16是一个非LTS版本。
新功能
以下是在Java 16中引入的主要新功能。
- JEP 338 – Vector API (Incubator) − 引入了新的Vector API,允许开发人员显式地执行矢量操作。
-
JEP 347 – 启用C++14语言特性 − 可以在JDK 16中使用C++14特性编写C++源代码。
-
JEP 357, JEP 369 – 从Mercurial迁移到Git/GitHub − OpenJDK源代码从Mercurial迁移到Git/GitHub。
-
JEP 376 – ZGC – 并发线程堆栈处理 − Z垃圾回收器通过将其线程堆栈处理从安全点移动到并发阶段来改进。
-
JEP 380 – Unix-Domain Socket Channels − SocketChannel和ServerSocketChannel现在支持Unix域套接字。
-
JEP 386 – Alpine Linux移植 − 现在JDK可用于Alpine Linux和其他使用musl实现的Linux发行版。
-
JEP 387 – 弹性Metaspace − 通过快速返回未使用的HotSpot类元数据或Metaspace内存到操作系统,改进了Metaspace内存管理,减少了Metaspace占用空间,并简化了Metaspace代码。
-
JEP 388 – Windows/AArch64移植 − 现在JDK可以在ARM硬件服务器或基于ARM的笔记本上运行。
-
JEP 389 – Foreign Linker API (Incubator) − 使用新的API替代JNI,可以通过C/C++调用Java代码,或者反过来。
-
JEP 390 – 值类警告 − 如果值类使用synchronize进行同步,将会发出警告。
-
JEP 392 – 打包工具 − jpackage现在是一个标准特性,而不再是孵化器特性。
-
JEP 393 – 外部内存访问API (第三孵化器) − 对外部内存访问API进行了轻微的增强。
-
JEP 394 – instanceof的模式匹配 − instanceof的模式匹配现在是一个标准特性。
-
JEP 395 – 记录 − 记录现在是一个标准特性。
-
JEP 396 – 默认强制封装JDK内部 − –illegal-access选项的默认模式现在是禁止。之前是允许。
-
JEP 397 – 封闭类 (第二预览版) − 对封闭类进行了轻微的增强。
Java 16通过增加了许多新的方法和选项来增强了许多API。我们将在下一章中了解这些变化。