2019年3月19日 JDK 12
发布,非LTS 版本。
新特性: http://openjdk.java.net/projects/jdk/12/
- 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
- 230: Microbenchmark Suite
- 325: Switch Expressions (Preview)
- 334: JVM Constants API
- 340: One AArch64 Port, Not Two
- 341: Default CDS Archives
- 344: Abortable Mixed Collections for G1
- 346: Promptly Return Unused Committed Memory from G1
- 189: Shenandoah 垃圾回收器
- 230: 在jdk源码里头新增了一套基础的Microbenchmark Suite
- 325: 对switch进行了增强 (Preview) 支持“ -> ”
- 334: 新增了JVM Constants API
- 340: 一个AArch64端口
- 341: 默认CDS归档
- 344: 可中断的G1垃圾回收器
- 346: 通过G1更及时的返回未使用的内存
Java 12 已如期于 2019 年 3 月 19 日正式发布,此次更新是 Java 11 这一长期支持版本发布之后的一次常规更新,带来了不少 JVM、GC 功能增强、改进。
垃圾收集器:Shenandoah
Java 12 中引入一个新的垃圾收集器:Shenandoah,它是作为一中低停顿时间的垃圾收集器而引入到 Java 12 中的,其工作原理是通过与 Java 应用程序中的执行线程同时运行,用以执行其垃圾收集、内存回收任务,通过这种运行方式,给虚拟机带来短暂的停顿时间。
Switch 表达式扩展(预览功能)
Java 11 以及之前 Java 版本中的 Switch 语句是按照类似 C、C++ 这样的语言来设计的,在默认情况下支持 fall-through 语法。虽然这种传统的控制流通常用于编写低级代码,但 Switch 控制语句通常运用在高级别语言环境下的,因此其容易出错性掩盖其灵活性。
1 | int dayNumber = switch (day) { |
Java 11 以及之前版本中,Switch 表达式支持下面类型: byte、char、short、int、Byte、Character、Short、Integer、enum、tring,在未来的某个 Java 版本有可能会允许支持 float、double 和 long (以及上面类型的封装类型)。
其他特性
其他的看不懂,不写出来了。
更多信息请看 Java 12 新特性介绍