JDK 14已于2020年3月17日发布,提供openjdk-14_linux-x64_bin.tar.gz下载,总共有16个重要的新特征,下面将附上新特征介绍。
JDK 14发布时间表一展 2019/12/12:Rampdown第一阶段(主线分叉) 2020/01/16:Rampdown第二阶段 2020/02/06:初始版本候选 2020/02/20:最终版本候选 2020/03/17:正式发布
JDK 14新特征介绍 1、instanceof的模式匹配(预览) 通过对instanceof运算符进行模式匹配来增强Java编程语言。模式匹配允许程序中的通用逻辑,即从对象中有条件地提取组件,可以更简洁、更安全地表示。这是JDK 14中的预览语言功能。 2、打包工具(孵化阶段) 基于JavaFX javapackager工具创建一个简单的打包工具,该工具: 支持本地打包格式,以为最终用户提供自然的安装体验。这些格式包括Windows上的msi和exe,macOS上的pkg和dmg以及Linux上的deb和rpm。 允许在打包时指定启动时间参数。 可以从命令行直接调用,也可以通过ToolProvider API以编程方式调用。 3、针对G1的NUMA感知内存分配 通过实现可识别NUMA的内存分配,提高大型计算机上的G1性能。另外: 实现G1以外的NUMA支持收集器不是目标。 支持Linux以外的操作系统不是目标。 使G1 NUMA的其他部分不是目标。 4、JFR事件流 公开JDK Flight Recorder数据以进行连续监视。另外: 提供一个API,用于在进程内和进程外应用程序中连续使用磁盘上的JFR数据。 记录与非流情况下相同的事件集。 事件流必须能够与基于磁盘和内存的非流记录共存。 5、非易失性映射字节缓冲区 添加新的特定于JDK的文件映射模式,以便可以使用FileChannel API创建引用非易失性内存的MappedByteBuffer实例。 6、有用的NullPointerExceptions 通过精确描述哪个变量为null来提高JVM生成的NullPointerExceptions的可用性。另外: 向开发人员和支持人员提供有关程序过早终止的有用信息。 通过更清楚地将动态异常与静态程序代码相关联来提高对程序的理解。 减少新开发人员经常对NullPointerExceptions产生的困惑和担忧。 7、Records(预览) 通过Records增强Java编程语言。Records提供了一种紧凑的语法来声明类,这些类是浅层不变数据的透明持有者。这是JDK 14中的预览语言功能。 8、开关表达式(标准) 扩展switch使其可以用作语句或表达式,以便两种形式都可以使用传统的case ... :标签,还有另一个新语句,用于从switch表达式产生值。这些更改将简化日常编码,并为在交换机中使用模式匹配提供了方法。这是JDK 12和JDK 13中的预览语言功能,参考在Linux发行版中安装Java 13/OpenJDK 13的方法。 9、弃用Solaris和SPARC端口 不建议使用Solaris/SPARC,Solaris/x64和Linux/SPARC端口,以在将来的发行版中删除它们。另外: 尝试为其中一个不推荐使用的端口配置构建时,增强构建系统以发出错误消息。通过新的配置选项可以抑制该错误消息。 在相关的JDK文档中,将端口和相关的特定于端口的功能标记为不建议删除。 10、:删除并发标记扫描(CMS)垃圾收集器 删除并发标记扫描(CMS)垃圾收集器。另外: 删除任何其他垃圾收集器不是目标。 从此JEP所针对的发行版之前的发行版中删除CMS垃圾收集器并不是一个目标。 11、macOS上的ZGC 将ZGC垃圾收集器移植到macOS。尽管我们希望需要ZGC可伸缩性的用户使用基于Linux的环境,但是在部署应用程序之前,开发人员通常会使用Mac进行本地开发和测试。还有一些用户希望运行桌面应用程序,例如带有ZGC的IDE。 12、Windows上的ZGC 将ZGC垃圾收集器移植到Windows。另外: 支持Windows 10和Windows Server 1803之前的版本不是目标,因为较早的版本缺少用于保留占位符的API。 13、弃用ParallelScavenge+SerialOld GC组合 弃用Parallel Scavenge和Serial Old垃圾收集算法的组合。另外: 删除此GC组合不是目标。 弃用任何其他GC组合不是目标。 14、删除Pack200工具和API 删除java.util.jar软件包中的pack200和unpack200工具以及Pack200 API。不推荐在Java SE 11中删除这些工具和API,并明确打算在将来的版本中删除它们。 15、文本块(第二预览) 将文本块添加到Java语言。文本块是一种多行字符串文字,它避免了大多数转义序列的需要,以一种可预测的方式自动设置字符串的格式,并在需要时使开发人员可以控制格式。这是JDK 14中的预览语言功能。 16、外部存储器访问API(孵化器) 引入一个API,以允许Java程序安全有效地访问Java堆之外的外部内存。外部存储器API应满足以下条件: 通用性:相同的API应该能够在各种类型的外部存储器(例如,本机存储器,持久性存储器,托管堆存储器等)上运行。 安全性:无论操作哪种内存,API都不可能破坏JVM的安全性。 确定性:内存释放操作应在源代码中明确。
下载链接 下载地址:http://jdk.java.net/14/ JDK网站:http://jdk.java.net/
相关主题 |