您的位置:首页 > 编程语言 > Java开发

Java 12 发布,支持Switch表达式

2019-03-31 00:00 801 查看

Java 12是最新的6个月发布一次的Java,它支持Switch表达式并包含Shenandoah低暂停垃圾收集器。

从switch表达式开始,新版本有八个主要改进。这仍然是一个预览功能,它扩展了switch语句,因此可以将其用作语句或表达式。无论使用哪种形式,都可以使用传统的或简化的范围和控制流行为。

Oracle表示,除了简化日常编程之外,这个添加还为switch语句中使用模式匹配铺平了道路。模式匹配是另一个预览语言特性。

目前,switch块的默认控制流是fall through,因此需要一个break语句来避免正在测试和可能执行的块中的其余Case语句。新的switch表达式引入了一种新形式的switch标签,编写为 "case L ->",表示只有在标签匹配时才执行标签右侧的代码。例如:

switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY                -> System.out.println(7);
    case THURSDAY, SATURDAY    -> System.out.println(8);
    case WEDNESDAY              -> System.out.println(9);
}

新版本的下一个改进是当前的垃圾收集器。从现在开始,垃圾收集器将在空闲时自动将Java堆内存返回给操作系统,而不是等到完全垃圾收集以将内存返回给操作系统,而且它还将更好地考虑暂停时间。

到目前为止,垃圾收集器有时启动的工作量要比暂停目标花费的时间长,这意味着任务已经超时。在改进版本下,如果发生这种情况,垃圾收集器将降低其目标。

在垃圾收集方面,Shenandoah已经添加到一个实验性版本中。Shenandoah是Java新的低暂停时间垃圾收集器算法。它通过与正在运行的Java线程并发地执行回收工作来减少GC暂停时间。Shenandoah的暂停时间与堆大小无关,这意味着无论堆大小是200mb还是200gb,您都将拥有相同的一致暂停时间。

另一个改进是在JDK源代码中添加了一套基本的微基准测试,同时使开发人员可以轻松地运行现有的微基准测试并创建新的微基准测试。还有一个新的JVM常量API,可用于对关键类文件和运行时构件的名义描述建模。

OpenJDK开源版本现在已经发布,同时还有商业许可版本。JDK 12将至少收到两次更新,之后将推出Oracle JDK 13,该版本将于2019年9月发布。

更多的信息

如何在Ubuntu 18.04/16.04中安装Oracle Java 12  https://www.linuxidc.com/Linux/2019-03/157763.htm

Oracle OpenJDK open source release

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 12