导读:Java 12 终于发布了,我们一起来看一看 Java 12 中的新特性。通过本文可以在5分钟内快速了解 Java 12 新特性。

1 Switch 表达式

使用Java 12,switch不仅可以作为语句也可以作为表达式。 无论作为语句或者作为表达式,switch都可以使用传统/简化的作用域和控制流行为。 这将有助于简化代码,并为在switch中使用模式匹配铺平道路。

Java开发人员正在增强Java编程语言,以使用模式匹配来解决当前switch语句的几个问题。 这包括:switch块的默认控制流行为,switch块默认作用域(被视为单个作用域的块)和switch仅作为语句。

在Java 11中,switch语句追随C和C++,默认情况下使用fall-through语义。 虽然传统的控制流程在编写低级代码时很有用,但随着switch在更高级别的环境中采用,易出错会盖过其灵活性。

Java 11

Java 12

2 默认CDS归档

通过在64位平台上的默认类列表的帮助下生成CDS归档来改进JDK构建过程,从而有效地消除了运行java -Xshare:dump。 此功能的目标包括:1。)改进开箱即用的启动时间,以及2.)摆脱使用-Xshare:dump。

3 Shenandoah GC

Shenandoah是一种垃圾收集(GC)算法,旨在保证低延迟(10 - 500 ms的下限)。 它通过在运行Java工作线程的同时执行GC操作减少GC暂停时间。 使用Shenandoah,暂停时间不依赖于堆的大小。 这意味着无论堆的大小如何,暂停时间都是差不多的。

这是一个实验性功能,不包含在默认(Oracle)的OpenJDK版本中。

4 JMH 基准测试

此功能为JDK源代码添加了一套微基准测试(大约100个),简化了现有微基准测试的运行和新基准测试的创建过程。 它基于Java Microbenchmark Harness(JMH)并支持JMH更新。

此功能使开发人员可以轻松运行当前的微基准测试并为JDK源代码添加新的微基准测试。 可以基于Java Microbenchmark Harness(JMH)轻松测试JDK性能。 它将支持JMH更新,并在套件中包含一组(约100个)基准测试。

5 JVM 常量 API

JEP 334引入了一个API,用于建模关键类文件和运行时artifacts,例如常量池。 此API将包括ClassDesc,MethodTypeDesc,MethodHandleDesc和DynamicConstantDesc等类。此 API 对于操作类和方法的工具很有帮助。

6 G1的可中断 mixed GC

此功能通过将Mixed GC集拆分为强制部分和可选部分,使G1垃圾收集器更有效地中止垃圾收集过程。通过允许垃圾收集过程优先处理强制集,g1可以更多满足满足暂停时间目标。

G1是一个垃圾收集器,设计用于具有大量内存的多处理器机器。由于它提高了性能效率,g1垃圾收集器最终将取代cms垃圾收集器。

G1垃圾收集器的主要目标之一是满足用户设置的暂停时间。G1采用一个分析引擎来选择在收集期间要处理的工作量。此选择过程的结果是一组称为GC集的区域。一旦GC集建立并且GC已经开始,那么G1就无法停止。

如果G1发现GC集选择选择了错误的区域,它会将GC区域的拆分为两部分(强制部分和可选部分)来切换到处理Mix GC的增量模式。如果未达到暂停时间目标,则停止对可选部分的垃圾收集。

7 G1归还不使用的内存

此功能的主要目标是改进G1垃圾收集器,以便在不活动时将Java堆内存归还给操作系统。 为实现此目标,G1将在低应用程序活动期间定期生成或持续循环检查完整的Java堆使用情况。

这将立即归还未使用的部分Java堆内存给操作系统。 用户可以选择执行FULL GC以最大化返回的内存量。

8 移除多余ARM64实现

Java 12将只有一个ARM 64位实现(aarch64)。 目标是删除所有与arm64实现相关的代码,同时保留32位ARM端口和64位aarch64实现。

这将把重点转移到单个64位ARM实现,并消除维护两个实现所需的重复工作。 当前的JDK 11实现中有两个64位ARM实现。

java5新特性_5分钟了解Java 12 八大新特性相关推荐

  1. 5分钟了解Java 12 八大新特性

    Java 12 终于发布了,我们一起来看一看 Java 12 中的新特性.通过本文可以在5分钟内快速了解 Java 12 新特性. 1 Switch 表达式 使用Java 12,switch不仅可以作 ...

  2. python 3.8 新特性 video_1分钟了解:Python3.8 新特性:仅位置参数

    这是Python3.8新特性的第二篇,第一篇介绍了赋值表达式,这篇文章花几分钟了解什么是仅位置参数(Positional-Only Arguments) 插播一条:我自己是一名从事了多年开发的Pyth ...

  3. Java 12新功能完整指南

    六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本. 让我们满足Java 12及其向开发人员介绍的功能. 自甲骨文推出其6个月加速发布节奏以来已经有一段时间了,要跟上每个版本及其添加到表 ...

  4. Oracle 12.2新特性 | 基于权重的节点驱逐

    前言 在Oracle Clusterware需要从集群中逐出特定节点或一组节点的情况时,基于服务器权重的节点驱逐可充当断裂机制,通过服务器上的负载附加信息来识别要驱逐的节点或节点组.其中所有节点被驱逐 ...

  5. java jdk12_JDK 12:Java 12中的新功能

    java jdk12 基于Java SE(标准版)12的Java开发套件12的生产版本现已发布. Oracle可以为Linux,Windows和MacOS提供JDK 12构建. [ Java JDK ...

  6. Java 12常规可用性

    马克·雷因霍尔德(Mark Reinhold) 今天宣布 :" Java 12的参考实现JDK 12现在可以普遍使用." Reinhold在该公告中指出,"可以从http ...

  7. Java 12:使用开关表达式进行映射

    在本文中,我们将研究Java 12的新功能" Switch Expressions",以及如何与Java 12结合使用. Stream::map操作和其他一些Stream操作. 了 ...

  8. java switch 表达式_尝鲜Java 12新特性:switch表达式

    Java 12将在两个月后(2019/3/19)发布,现已进入RDP1阶段,确定加入8个JEP.其中对Java语法的改进是JEP 325: switch表达式.于是我迫不及待,提前感受一下更先进的语言 ...

  9. Java 12正式发布,新特性解读!

    Java 12 如约而至,除了那些值得关注的特性,你也应该思考下 Java 的未来. 在 Java 9 之前,当一个版本被宣布为首选版本,存在一个"培育"(bedded-in)新 ...

最新文章

  1. ES6-const注意
  2. 良好的编码习惯 —— 5 个提高代码质量的技巧
  3. VTK:高亮选择动画用法实战
  4. ajax中res和req,javascript – 来自AJAX调用的res.redirect
  5. Linux 高性能服务器编程——多线程编程
  6. 2个表 遍历 组合_分享一个python脚本--数字随机组合有多少
  7. php案例纠错,PHP编程纠错指南
  8. 研0必读!李航《统计学习方法》啃书指南
  9. heartbeat+drbd+mysql高可用架构
  10. VC++ MsChart控件怎么用?
  11. 中国麻将:世界上最早的区块链项目
  12. markdown特殊用法(三) 脚注的输入
  13. 技术面试时该反问面试官什么问题?
  14. 在 Win10系统,所有程序默认都以管理员身份运行
  15. JAVA利用jsoup爬取百度热点信息
  16. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十五║初探SSR服务端渲染(个人博客二)...
  17. linux两个邮件服务,Linux系列-Red Hat5平台下的Postfix邮件服务搭建(二)
  18. 【深度学习】详解 MAE
  19. 帝国cms自动生成html首页,分享一个帝国CMS定时生成首页(自动刷新首页)的方法...
  20. Gvim,Vim编辑器快速学习介绍

热门文章

  1. docker删除mongo数据库库_Docker 搭建MongoDB环境
  2. idea swing 插件_【分享】我的idea配置
  3. 康力电梯开门不关门 服务器显示开门键动作,康力电梯现场调试后常见问题及排除...
  4. window.onload=function(){};
  5. BZOJ.4909.[SDOI2017]龙与地下城(正态分布 中心极限定理 FFT Simpson积分)
  6. DML和DQL 总结
  7. 洛谷P1852 奇怪的字符串
  8. 洛谷P2134 百日旅行
  9. c++--类的作用域
  10. 1.9编程基础之顺序查找02:输出最高分数的学生姓名