Skip to main content

Java 16

核心总结

  • Records 和 instanceof 模式匹配转正,jpackage 转正,JDK 开发迁到 Git/GitHub,内部 API 默认强封装。

升级关注

  • Records、instanceof pattern 已可正式使用。
  • 默认强封装内部 API,非法反射访问需要迁移或加显式 --add-opens。

示例

Records / instanceof Pattern 正式

record Point(int x, int y) {}

Object value = new Point(1, 2);
if (value instanceof Point p) {
System.out.println(p.x() + p.y());
}

jpackage

jpackage --name demo --input target --main-jar app.jar --main-class com.example.Main

JEPs

JEP状态分类标题中文描述
JEP 338孵化Panama/向量/原生Vector API (Incubator)Vector API 首次孵化,提供可移植 SIMD 表达。
JEP 347正式库/APIEnable C++14 Language FeaturesJDK native 代码允许使用 C++14。
JEP 357正式工具/平台Migrate from Mercurial to GitJDK 源码从 Mercurial 迁到 Git。
JEP 369正式工具/平台Migrate to GitHubJDK 开发迁移到 GitHub。
JEP 376正式GC/RuntimeZGC: Concurrent Thread-Stack ProcessingZGC 并发处理线程栈,进一步降低停顿。
JEP 380正式Panama/向量/原生Unix-Domain Socket ChannelsNIO 支持 Unix domain socket。
JEP 386正式工具/平台Alpine Linux Port支持 Alpine Linux musl port。
JEP 387正式GC/RuntimeElastic MetaspaceMetaspace 更弹性地归还内存。
JEP 388正式工具/平台Windows/AArch64 Port支持 Windows AArch64。
JEP 389孵化Panama/向量/原生Foreign Linker API (Incubator)外部函数链接 API 孵化。
JEP 390正式库/APIWarnings for Value-Based Classes对 value-based class 的不当同步等用法发出警告。
JEP 392正式工具/平台Packaging Tooljpackage 转正。
JEP 393第三次孵化Panama/向量/原生Foreign-Memory Access API (Third Incubator)外部内存访问 API 第三次孵化。
JEP 394正式语言Pattern Matching for instanceofinstanceof 模式匹配转正。
JEP 395正式语言RecordsRecords 转正。
JEP 396正式库/APIStrongly Encapsulate JDK Internals by Default默认强封装 JDK 内部 API,sun.misc.Unsafe 等关键 API 例外。
JEP 397第二次预览语言Sealed Classes (Second Preview)密封类第二次预览。

References