美文网首页Java
Java12新特性

Java12新特性

作者: TZX_0710 | 来源:发表于2021-06-28 15:02 被阅读0次

Java12新特性概述

2019-03-19正式发布Java12 的版本

switch表达式扩展(预览功能)

Java11以及之前的Java版本中的Switch语句类似是按照类似C、C++这样的语言来设计的,在默认情况下支持fall-through语法。虽然这种传统的控制流通常用于编写低级代码,但Switch控制语句通常运用在高级别语言环境下的,因此容易出错性掩盖其灵活性。

int day = 0;
int dayNumber = switch (day) {
    case 0 -> 6;
    case 2 -> 7;
    default -> throw new IllegalStateException("Unexpected value: " + day);
};
System.out.println(dayNumber);

引入JVM常量API

  1. Java 12中引入 JVM常量API,用来更容易对关键类文件 (key class-file)和运行时构建(artefact)的名义描述(nominal description)进行建模,特别是对那些从常量池加载的常量。此项改进主要在java.lang.invoke.constant包定义了一系列基于值得符号引用类型,能够描述每种可加载常量。符号引用以纯吹得nominal得形式描述可加载常量,与类加载或可访问性上下文分开。

改进AArch64(处理器)实现

  1. 删除所有arm64 实现相关的代码,消除维护两套端口所需要的重复工作。
  2. Java 12 中将删除目录 open/src/hotspot/cpu/arm 中关于 64-bit 的这套实现,只保留其中有关 32-bit 的实现,余下目录的 open/src/hotspot/cpu/aarch64 代码部分就成了 AArch64 的默认实现

使用默认类数据共享(CDS)存档

  1. Java12针对64位平台下的JDK构建过程进行了增强,,使其默认生成类共享CDS归档,以进一步达到改进应用程序的启动时间的目的,同时也避免了使用手动运行:-Xshare:dump的需要,修改后的JDK将在lib/server目录中保留构建生成的CDS存档

改善G1垃圾收集器,使其能够中止混合集合

Java12把GC回收 拆分位必须和可选2个部分,作用如下:

  1. 能中止垃圾回收过程。
  2. 必须处理的部分包括G1垃圾收集器不能递增处理的部分,如年轻代,可以包含老年代以提高处理效率
  3. 完成必须回收部分之后,开始收集可选部分,完成可选部分之后根据剩余时间决定是否停止收集。

增强G1垃圾收集器,使其能自动返回未用堆内存给操作系统

  1. 自上次垃圾回收完成 以来已超过 G1PeriodicGCInterva l 毫秒, 并且此时没有正在进行的垃圾回收任务。如果 G1PeriodicGCInterval 值为零表示禁用快速回收内存的定期垃圾收集。
  2. 应用所在主机系统上执行方法 getloadavg() ,一分钟内系统返回的平均负载值低于 G1PeriodicGCSystemLoadThreshold 。如果 G1PeriodicGCSystemLoadThreshold 值为零,则此条件不生效。

相关文章

网友评论

    本文标题:Java12新特性

    本文链接:https://www.haomeiwen.com/subject/cnrqultx.html