Java开发工具包(JDK)14已进入发布候选阶段,总体功能基本已确定。计划中的标准Java升级将具有新功能,例如JDK Flight Recorder事件流,模式匹配和开关表达式。

JDK 14计划在Java设定六个月的发布节奏之后,于2020年3月17 日正式发布。针对JDK 14的功能包括:

  • JFR事件流 提供一个API,用于持续使用来自流程内和流程外应用程序的JFR数据。JFR是用于收集有关正在运行的Java应用程序的概要分析和诊断数据的工具。事件流建议记录与非流情况相同的事件集,并且如果可能,开销小于百分之一。事件流必须与基于磁盘和基于内存的非流记录共存。在这种情况下,HotSpot VM使用JFR发出500个以上的数据点,而其中的大多数数据仅可通过分析日志文件来使用,因此很容易激发这种提议。当前,用户必须开始录制,停止录制,将内容转储到磁盘,然后解析录制文件。这对于应用程序概要分析非常有效,但不适用于监视目的。监控使用情况的一个示例是显示动态更新数据的仪表板。创建记录会产生开销,例如将数据从磁盘存储库复制到单独的记录文件。如果有一种方法可以在不创建新记录文件的情况下从磁盘存储库读取正在记录的数据,则可以避免很多开销。
  • 计划进行的改进 NullPointerExceptions涉及通过准确描述哪个变量为null来提高JVM生成的异常的可用性。该提案的作者希望为开发人员和支持人员提供有关程序过早终止的有用信息,并通过更清楚地将动态异常与静态程序代码相关联来提高对程序的理解。一个目标是减少开发人员的困惑和担忧NullPointerExceptions。
  • 非易失性映射的字节缓冲区将添加新的特定于JDK的文件映射模式,该模式允许使用FileChannel API创建MappedByteBuffer引用非易失性内存(NVM)的实例。NVM使程序员可以跨程序运行来构建和更新程序状态,而不会产生输入和输出操作通常需要的大量复制或翻译成本。这对于交易程序尤其重要。因此,此JDK增强建议的主要目标是确保客户端可以连贯且有效地从Java程序访问和更新NVM。第二个目标是使用在class中定义的受限制的JDK内部API来实现此提交行为Unsafe,因此除其他类外,它可以重用它。MappedByteBuffer可能需要提交给NVM。另一个目标是允许现有API跟踪在NVM上映射的缓冲区,以进行监视和管理。目标OS / CPU平台包括Linux / x64和Linux / AArch64。
  • 开关表达式通过扩展switch使其可以用作语句或表达式而简化了编码 。在JDK 12和JDK 13中都进行预览之后,开关表达式有望成为JDK 14的永久功能。开关表达式还为使用模式匹配做好了准备switch。模式匹配使开发人员可以更简洁,安全地从对象中有条件地提取组件。
  • G1垃圾回收器的NUMA感知内存分配,旨在提高大型计算机上的G1性能。
  • 删除并发标记扫描(CMS)垃圾收集器,该垃圾收集器先前已弃用并计划删除。CMS的后继者包括ZGC和Shenandoah。
  • 将ZGC移植到MacOS。到目前为止,仅Linux才支持它。
  • 删除java.util.jar软件包中的pack200和unpack200工具以及Pack200 API 。所有这些在Java SE 11中已弃用,目的是将来删除它们。Pack200是JAR文件的压缩方案。
  • 记录,它将提供一种紧凑的语法来声明为浅层不可变数据的透明持有者的类。该提案指出,声明浅不可改变的,行为良好的名义数据集合应该简单明了。
  • 一种打包工具,处于开发的孵化阶段,用于打包自包含的Java应用程序。该工具将基于JavaFX javapackager。此类工具已包含在Java中,但作为删除JavaFX的一部分从JDK 11中删除。
  • 通过为 操作员提供模式匹配来增强语言instanceof。这将是JDK 14中的预览功能。模式匹配可以更简洁和安全地表示程序中的通用逻辑,主要是从对象中有条件地提取组件。
  • 文本块的第二个预览,这是一种多行字符串文字,它避免了大多数转义序列的需要,并以可预测的方式自动格式化字符串。文本块将在需要时使开发人员可以控制格式,简化Java程序的编写,并增强字符串的可读性。文本块在JDK 13中进行了预览;JDK 14迭代将添加转义序列以管理显式空白和换行控制。
  • 不赞成使用Parallel Scavenge和Serial Old垃圾收集算法的组合。Java维护者认为这种组合很少使用,但需要大量维护。
  • 将ZGC(Z垃圾收集器)移植 到Windows。在恢复到提议的目标列表之后,此功能再次移至正式目标列表。
  • 外部存储器访问API,引入了Java程序的API,可以安全有效地访问Java堆外部的外部存储器。该API应该可以替代Java程序访问内存(包括nio.ByteBuffer和)的主要途径sun.misc.Unsafe。新的API应该能够在各种类型的内存上运行,包括本机,持久性内存和托管堆。API不可能破坏JVM的安全性。内存释放应在源代码中明确。该API有望帮助开发本机互操作支持,这是巴拿马项目的目标。
  • 弃用Solaris / Sparc,Solaris / x64和Linux / Sparc端口,以在将来的发行版中将其删除。放弃对这些端口的支持将使OpenJDK贡献者能够加速新功能的开发。尽管Solaris和Sparc是Java最初的创建者Sun Microsystems的关键技术,但近年来,它们已被Linux OS和Intel处理器取代了其技术领域。

JDK14都要问世了,你还在用JDK8吗的更多相关文章

  1. Jdk14都要出了,还不能使用 Optional优雅的处理空指针?

    1. 前言 如果你没有处理过空指针,那么你不是一位真正的 Java 程序员. 空指针确实会产生很多问题,我们经常遇到空的引用,然后又想从这个空的引用上去获取其他的值,接着理所当然的碰到了 NullPo ...

  2. Jdk14 都要出了,Jdk9 的新特性还不了解一下?

    Java 9 中最大的亮点是 Java 平台模块化的引入,以及模块化 JDK.但是 Java 9 还有很多其他新功能,这篇文字会将重点介绍开发人员特别感兴趣的几种功能. 这篇文章也是 Java 新特性 ...

  3. 都2019年了,还问GET和POST的区别

    摘要: 对比GET与POST. 原文:都9102年了,还问GET和POST的区别 作者:程淇铭 Fundebug经授权转载,版权归原作者所有. 1. 前言 最近看了一些同学的面经,发现无论什么技术岗位 ...

  4. CentOS 8 都发布了,你还不会用 nftables?

    原文链接:CentOS 8 都发布了,你还不会用 nftables? 如果你没有生活在上个世纪,并且是云计算或相关领域的一名搬砖者,那你应该听说最近 CentOS 8 官方正式版已经发布了,CentO ...

  5. [转帖]CentOS 8 都发布了,你还不会用 nftables?

    CentOS 8 都发布了,你还不会用 nftables? https://www.cnblogs.com/ryanyangcs/p/11611730.html 改天学习一下 原文链接:CentOS ...

  6. Android IOS WebRTC 音视频开发总结(六九)-- qq视频通话都是p2p,我们还怕啥?

    本文主要介绍在线教育这个行业,文章最早发表在我们的微信公众号上,支持原创,详见这里, 欢迎关注微信公众号blackerteam,更多详见www.rtc.help 先简单介绍什么是p2p? p是peer ...

  7. 都9102年了,还不会Docker?10分钟带你从入门操作到实战上手

    Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎.它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windows10目前也原生支 ...

  8. Context都没弄明白,还怎么做Android开发?

    Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言 ...

  9. CDR都特价了,你还用破解版?

    目前,CDR X6特价活动,从18的年的元旦一直持续到现在,真可谓是痛快淋漓,大喜若狂,但是,似乎好像是....这么强有力的活动马上就要告一段落了,因为限量1000 套的抢购要卖!完!了!难不难过,痛 ...

随机推荐

  1. vnpy源码阅读学习(3):学习vnpy的界面的实现

    学习vnpy的界面的实现 通过简单的学习了PyQt5的一些代码以后,我们基本上可以理解PyQt的一些用法,下面让我们来先研究下vnpy的UI部分的代码. 首先回到上一节看到的run.py(/vnpy/ ...

  2. [Golang] 剑走偏锋 -- IoComplete ports

    前言 Golang 目前的主要應用領域還是後臺微服務,雖然在業務領域也有所應用但仍然是比較小衆的選擇.大多數的服務運行環境都是linux,而在windows中golang應用更少,而作者因爲特殊情況, ...

  3. 从头学pytorch(二十):残差网络resnet

    残差网络ResNet resnet是何凯明大神在2015年提出的.并且获得了当年的ImageNet比赛的冠军. 残差网络具有里程碑的意义,为以后的网络设计提出了一个新的思路. googlenet的思路 ...

  4. cf - 920 c 求能否实现交换

    C. Swap Adjacent Elements time limit per test 1 second memory limit per test 256 megabytes input sta ...

  5. github 删除库

    1.查看库 2.选择想要删除的库,点击setting 3.删除库

  6. Linux下安装JDK 1.8

    前言 JDK是 JAVA 的软件开发工具包,如果要使用JAVA来进行开发,或者部署基于其开发的应用,那么就需要安装JDK.本次将在Linux下安装JDK及配置环境. 本人环境:CentOS 7.3 6 ...

  7. [bzoj3938] [Uoj #88] Robot

    Description 小 \(q\) 有 \(n\) 只机器人,一开始他把机器人放在了一条数轴上,第 \(i\) 只机器人在 \(a_i\) 的位置上静止,而自己站在原点.在这之后小 \(q\) 会 ...

  8. Beta版本

    Beta版本 博客说明 这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业的要求在哪里 ht ...

  9. springboot mybatis 多数据源配置支持切换以及一些坑

    一 添加每个数据源的config配置,单个直接默认,多个需要显示写出来 @Configuration @MapperScan(basePackages ="com.zhuzher.*.map ...

  10. 对比PXC集群与主从架构在一致性上的区别

    在上一篇文章中,已经完成了三节点PXC集群的搭建,现在搭建node3的从库node4,并且有如下测试: 搭建node3的从库,代号node4 测试1: 先断开node3节点,然后在node1构造数据, ...