咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

JDK 12 新特性

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
2
3
4
5
6
7
int dayNumber = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
default -> throw new IllegalStateException("Huh? " + day);
}

Java 11 以及之前版本中,Switch 表达式支持下面类型: byte、char、short、int、Byte、Character、Short、Integer、enum、tring,在未来的某个 Java 版本有可能会允许支持 float、double 和 long (以及上面类型的封装类型)。

其他特性

其他的看不懂,不写出来了。

更多信息请看 Java 12 新特性介绍