Java 12
约 2 分钟阅读
- Released: 2019-03-19
- JDK 12 Project链接openjdk.org/projects/jdk/12Released: 2019-03-19 · JDK 12 Project · 小版本中引入 Switch Expressions 预览,默认 CDS 归档和 G1 改进,Shenandoah 首次实验进入。 · Switch Expressions 仍是预览,生产代码需谨慎依赖。笔记:Java 12
核心总结
- 小版本中引入 Switch Expressions 预览,默认 CDS 归档和 G1 改进,Shenandoah 首次实验进入。
升级关注
- Switch Expressions 仍是预览,生产代码需谨慎依赖。
示例
Switch Expressions Preview
// javac --enable-preview --release 12 Demo.java
// java --enable-preview Demo
var type = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> "busy";
case TUESDAY -> "normal";
default -> "other";
};JMH 微基准套件方向
// JDK 自身引入 microbenchmark suite;业务项目通常直接用 org.openjdk.jmh:jmh-core。JEPs
| JEP | 状态 | 分类 | 标题 | 中文描述 |
|---|---|---|---|---|
| JEP 189 | 实验 | GC/Runtime | Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) | 实验性 Shenandoah 低停顿 GC。 |
| JEP 230 | 正式 | 工具/平台 | Microbenchmark Suite | JDK 源码内置 JMH 微基准套件。 |
| JEP 325 | 预览 | 语言 | Switch Expressions (Preview) | switch 可作为表达式并返回值,预览。 |
| JEP 334 | 正式 | 库/API | JVM Constants API | 标准化描述 class-file 和运行时常量的 API。 |
| JEP 340 | 正式 | 工具/平台 | One AArch64 Port, Not Two | 保留一个 AArch64 port,移除重复实现。 |
| JEP 341 | 正式 | GC/Runtime | Default CDS Archives | 默认生成 CDS 归档,改善启动时间。 |
| JEP 344 | 正式 | GC/Runtime | Abortable Mixed Collections for G1 | G1 mixed collection 可中止,降低超预算停顿。 |
| JEP 346 | 正式 | GC/Runtime | Promptly Return Unused Committed Memory from G1 | G1 更快把未用 committed 内存还给 OS。 |
References
- JDK 12 Project链接openjdk.org/projects/jdk/12Released: 2019-03-19 · JDK 12 Project · 小版本中引入 Switch Expressions 预览,默认 CDS 归档和 G1 改进,Shenandoah 首次实验进入。 · Switch Expressions 仍是预览,生产代码需谨慎依赖。笔记:Java 12
- Java 12 Release Notes
关联信息
反向链接、本文链接的其他页面和外部资料。
反向链接
- Java 版本笔记 · Java 12
自 Java 9 · 每 6 个月一个版本 · 每 2 年一个 LTS - 每 4 个版本 · Java 11 - Java 17 隔了 3 年, 之后为每隔两年 · Java JEP 与版本变化 · 参考 · Java version history
- Java JEP 与版本变化笔记 · 12
资料来源以 OpenJDK JDK Project 页面和 JEP 页面为主。Java 5–7 主要按 JSR/项目整理;JDK 8 起按代表性 JEP 整理;JDK 10 起列出该版本项目页 Features 中的全部 JEP。 · | 状态 | 含义 | 使用建议 |
参考资料
其他外链10 条
- openjdk.org/projects/jdk/12openjdk.org/projects/jdk/12
- jdk.java.net/12/release-notesjdk.java.net/12/release-notes
- openjdk.org/jeps/189openjdk.org/jeps/189
- openjdk.org/jeps/230openjdk.org/jeps/230
- openjdk.org/jeps/325openjdk.org/jeps/325
- openjdk.org/jeps/334openjdk.org/jeps/334
- openjdk.org/jeps/340openjdk.org/jeps/340
- openjdk.org/jeps/341openjdk.org/jeps/341
- openjdk.org/jeps/344openjdk.org/jeps/344
- openjdk.org/jeps/346openjdk.org/jeps/346