Java 16
约 2 分钟阅读
- Released: 2021-03-16
- JDK 16 Project链接openjdk.org/projects/jdk/16Released: 2021-03-16 · JDK 16 Project · Records 和 instanceof 模式匹配转正,jpackage 转正,JDK 开发迁到 Git/GitHub,内部 API 默认强封装。 · Records、instanceof pattern 已可正式使用。笔记: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.MainJEPs
| JEP | 状态 | 分类 | 标题 | 中文描述 |
|---|---|---|---|---|
| JEP 338 | 孵化 | Panama/向量/原生 | Vector API (Incubator) | Vector API 首次孵化,提供可移植 SIMD 表达。 |
| JEP 347 | 正式 | 库/API | Enable C++14 Language Features | JDK native 代码允许使用 C++14。 |
| JEP 357 | 正式 | 工具/平台 | Migrate from Mercurial to Git | JDK 源码从 Mercurial 迁到 Git。 |
| JEP 369 | 正式 | 工具/平台 | Migrate to GitHub | JDK 开发迁移到 GitHub。 |
| JEP 376 | 正式 | GC/Runtime | ZGC: Concurrent Thread-Stack Processing | ZGC 并发处理线程栈,进一步降低停顿。 |
| JEP 380 | 正式 | Panama/向量/原生 | Unix-Domain Socket Channels | NIO 支持 Unix domain socket。 |
| JEP 386 | 正式 | 工具/平台 | Alpine Linux Port | 支持 Alpine Linux musl port。 |
| JEP 387 | 正式 | GC/Runtime | Elastic Metaspace | Metaspace 更弹性地归还内存。 |
| JEP 388 | 正式 | 工具/平台 | Windows/AArch64 Port | 支持 Windows AArch64。 |
| JEP 389 | 孵化 | Panama/向量/原生 | Foreign Linker API (Incubator) | 外部函数链接 API 孵化。 |
| JEP 390 | 正式 | 库/API | Warnings for Value-Based Classes | 对 value-based class 的不当同步等用法发出警告。 |
| JEP 392 | 正式 | 工具/平台 | Packaging Tool | jpackage 转正。 |
| JEP 393 | 第三次孵化 | Panama/向量/原生 | Foreign-Memory Access API (Third Incubator) | 外部内存访问 API 第三次孵化。 |
| JEP 394 | 正式 | 语言 | Pattern Matching for instanceof | instanceof 模式匹配转正。 |
| JEP 395 | 正式 | 语言 | Records | Records 转正。 |
| JEP 396 | 正式 | 库/API | Strongly Encapsulate JDK Internals by Default | 默认强封装 JDK 内部 API,sun.misc.Unsafe 等关键 API 例外。 |
| JEP 397 | 第二次预览 | 语言 | Sealed Classes (Second Preview) | 密封类第二次预览。 |
References
- JDK 16 Project链接openjdk.org/projects/jdk/16Released: 2021-03-16 · JDK 16 Project · Records 和 instanceof 模式匹配转正,jpackage 转正,JDK 开发迁到 Git/GitHub,内部 API 默认强封装。 · Records、instanceof pattern 已可正式使用。笔记:Java 16
- Java 16 Release Notes
关联信息
反向链接、本文链接的其他页面和外部资料。
反向链接
- Java 版本笔记 · Java 16
自 Java 9 · 每 6 个月一个版本 · 每 2 年一个 LTS - 每 4 个版本 · Java 11 - Java 17 隔了 3 年, 之后为每隔两年 · Java JEP 与版本变化 · 参考 · Java version history
- Java JEP 与版本变化笔记 · 16
资料来源以 OpenJDK JDK Project 页面和 JEP 页面为主。Java 5–7 主要按 JSR/项目整理;JDK 8 起按代表性 JEP 整理;JDK 10 起列出该版本项目页 Features 中的全部 JEP。 · | 状态 | 含义 | 使用建议 |
参考资料
其他外链19 条
- openjdk.org/projects/jdk/16openjdk.org/projects/jdk/16
- jdk.java.net/16/release-notesjdk.java.net/16/release-notes
- openjdk.org/jeps/338openjdk.org/jeps/338
- openjdk.org/jeps/347openjdk.org/jeps/347
- openjdk.org/jeps/357openjdk.org/jeps/357
- openjdk.org/jeps/369openjdk.org/jeps/369
- openjdk.org/jeps/376openjdk.org/jeps/376
- openjdk.org/jeps/380openjdk.org/jeps/380
- openjdk.org/jeps/386openjdk.org/jeps/386
- openjdk.org/jeps/387openjdk.org/jeps/387
- openjdk.org/jeps/388openjdk.org/jeps/388
- openjdk.org/jeps/389openjdk.org/jeps/389
- openjdk.org/jeps/390openjdk.org/jeps/390
- openjdk.org/jeps/392openjdk.org/jeps/392
- openjdk.org/jeps/393openjdk.org/jeps/393
- openjdk.org/jeps/394openjdk.org/jeps/394
- openjdk.org/jeps/395openjdk.org/jeps/395
- openjdk.org/jeps/396openjdk.org/jeps/396
- openjdk.org/jeps/397openjdk.org/jeps/397