Skip to main content

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/RuntimeShenandoah: A Low-Pause-Time Garbage Collector (Experimental)实验性 Shenandoah 低停顿 GC。
JEP 230正式工具/平台Microbenchmark SuiteJDK 源码内置 JMH 微基准套件。
JEP 325预览语言Switch Expressions (Preview)switch 可作为表达式并返回值,预览。
JEP 334正式库/APIJVM Constants API标准化描述 class-file 和运行时常量的 API。
JEP 340正式工具/平台One AArch64 Port, Not Two保留一个 AArch64 port,移除重复实现。
JEP 341正式GC/RuntimeDefault CDS Archives默认生成 CDS 归档,改善启动时间。
JEP 344正式GC/RuntimeAbortable Mixed Collections for G1G1 mixed collection 可中止,降低超预算停顿。
JEP 346正式GC/RuntimePromptly Return Unused Committed Memory from G1G1 更快把未用 committed 内存还给 OS。

References