当前位置: 首页 > 图灵资讯 > 技术篇> Java12/JDK12正式发布有哪些新特性

Java12/JDK12正式发布有哪些新特性

来源:图灵教育
时间:2023-02-17 17:08:11

  Java12/JDK12正式发布的新特点是什么?具体变化包括Shenandoah:GC(实验功能)、Microbenchmarksuite.Switchexpresions.JVMconstantsapiont.onearch64port.

Java12/JDK12正式发布。

  Java/JDK12自2月7日起进入RC阶段。Java12于3月19日正式发布,根据发布周期!

  Java12带来了一系列新的特点:

  189shenandoah:Alow-Pause-Timegarbagecolecolecolecolecolecolecolecole,GC暂停时间较低。

  230microbenchmarksuite微基准测试套件。

  Switchpresions(Preview)Switch表达式。

  334JVMConstantsAPIJVM常量API。

  340oneArch64Port,Notwo只保留Aarch64。

  341DefaultCDSArchives默认数据共享归档文件。

  G1MixedGC可暂停G1。

  346Promptlyreturnsedcomitedmememoryfromg1G1及时返回未使用的分配内存。

  1.Shenandoah:GC(实验功能)暂停时间低。

  通过与正在运行的java线程同时工作,增加了一种叫做Shenandoah的GC算法,以减少GC的暂停时间。Shenandoah的暂停时间与堆的大小无关,这意味着堆是200MB还是200GB。

  2.Microbenchmarksuite。

  微基准测试套件。

  JDK源代码增加了一套微基准测试套件,使开发人员能够轻松操作现有的微基准测试,并创建新的基准测试。

  3.Switchexpresions(Preview)

  Switch表达式(预览功能)

  扩展switch语句不仅可以用作语句,还可以用作表达式。传统的switch语法可以用于两种写作方法,也可以用简化的casel->模式将语法匹配到不同的范围,控制执行流。这些变化将简化日常代码,为switch中的模式匹配做好准备。

  4.JVMConstantsapi。

  常量APIJVM。

  在操作过程中,引入API对关键文件和工件的建模,特别是可以从常量池加载的常量。在新的java.lang.invoke.constant包中,定义了一系列基于值的符号引用(JVMS5.1)类型,可以描述每个可加载常量。符号引用以纯nominal的形式描述可加载常量,区别于类加载或可访问性。有些类别可以作为自己的符号引用(如string),但是对于可链接常量,定义了一系列的符号引用类型

  5.OneArch64Port,Nottwo。

  只保留AArch64。

  删除与arm64相关的所有源,并保留32个arm和64个arch64。

  JDK实现了两套64位ARM,主要存在于Src/hotspot/cpu/arm和open/src/hotspot/cpu/arch64目录中。两者都实现了arch64,现在只保留了后者,删除了Oracle提供的arm64。这将使贡献者专注于实现单个64位ARM,并消除两套重复工作。

  6.DefaultCDSArchives。

  默认数据共享归档文件。

  对于64个平台,使用默认列表加强JDK构建过程,生成类数据共享(classdata-sharing、CDS)。

  7.Abortablemixedcolecolecolectionsforg1。

  G1MixedGC可以中止。

  如果G1MixedGC可能超过暂停目标,则可以暂停。

  Promptlyreturnusedcomitedmemoryfromg1。

  8.G1及时返回未使用的已分配内存。

  增强G1GC,并在业余时间自动将Java堆内存返回操作系统。为了实现最大内存返回操作系统的目标,G1定期执行或触发非活动应用程序的并发周期,以确定Java堆的整体使用。这将导致Java堆未使用的部分自动返回操作系统。在用户的控制下,完整的GC可以有选择地执行,以最大限度地提高返回内存。