新增功能
适用于G1的JEP 307平行全GC
通过使完整的GC并行来改善G1最坏情况延迟。G1垃圾收集器旨在避免完整集合,但是当并发集合无法足够快地回收内存时,将发生后退完整GC。用于G1的完整GC的旧实现使用单线程标记扫描紧凑算法。使用JEP 307,完整的GC已经并行化,现在使用与年轻和混合集合相同数量的并行工作线程。
开箱即用的JMX代理的哈希密码
jmxremote.password现在,JMX代理正在使用SHA3-512哈希覆盖文件中存在的明文密码。
用于禁用JRE最后使用情况跟踪的系统属性
jdk.disableLastUsageTracking引入了一个新的系统属性来禁用正在运行的VM的JRE最后使用情况跟踪。可以使用-Djdk.disableLastUsageTracking=true或中的任何一个在命令行中设置此属性 -Djdk.disableLastUsageTracking。使用此系统属性集,无论设置的com.oracle.usagetracker.track.last.usage属性值如何,都将禁用JRE上次使用跟踪usagetracker.properties。
用于创建不可修改集合的API
添加了几个新API,便于创建不可修改的集合。的List.copyOf,Set.copyOf和Map.copyOf方法从现有情况下,新的集合实例。新的方法toUnmodifiableList,toUnmodifiableSet以及toUnmodifiableMap已被添加到Collectors在流包类。这些允许将Stream的元素收集到不可修改的集合中。
Optional.orElseThrow()方法
该类中orElseThrow添加了一种新方法Optional。它是现有get方法的同义词,现在是现有方法的首选替代方案。
JEP 319根证书
在JDK中提供一组默认的根证书颁发机构(CA)证书。
TLS会话哈希和扩展主密钥扩展支持
已在JDK JSSE提供程序中为TLS会话哈希和扩展主密钥扩展(RFC 7627)添加了支持。请注意,通常,如果未启用端点标识并且先前的握手是会话恢复缩写的初始握手,则限制服务器证书更改,除非两个证书表示的身份可视为相同。但是,如果启用或协商扩展,则不需要服务器证书更改限制,因此将被丢弃。
用于增强环路的字节码生成
字节码生成已得到改进,增强了for循环,为它们提供了翻译方法的改进。
javadoc支持多个样式表
新的javadoc命令行选项--add-stylesheet已添加到javadoc工具中。
覆盖不改变规范的方法
新的选项--overridden-methods=值已添加到javadoc工具中。许多类在不更改规范的情况下覆盖继承的方法。该--overridden-methods=值选项可用于组这些方法与其它的继承方法,而不是用在类中声明的其它方法记录他们的细节。
API描述摘要的注释标记
添加了新的内联标记,{@summary ...}以明确指定用作API描述摘要的文本。默认情况下,API描述的摘要是从第一句推断出来的。这是通过使用简单的算法或java.text.BreakIterator。然而,这种启发式方法并不总是正确的,并且可能导致错误地确定第一句的结尾。新标记可以显式设置API摘要文本而不是推断。
增强的KeyStore机制
jceks.key.serialFilter引入了一个名为的新安全属性。如果配置了此过滤器,则JCEKS KeyStore会在对SecretKeyEntry中存储的加密Key对象进行反序列化时使用它。如果未配置或过滤结果为UNDECIDED(例如,没有模式匹配),则查询配置的过滤器jdk.serialFilter。
使用EC密钥签名的XML签名小于224位禁用
XML Signature实现的安全验证模式已得到增强,默认情况下限制EC密钥小于224位。通过org.jcp.xml.dsig.secureValidation使用javax.xml.crypto.XMLCryptoContext.setProperty()方法将属性设置为true ,或通过使用SecurityManager运行代码,可以启用安全验证模式。
禁用3DES密码套件
为了提高SSL / TLS连接的强度,已通过jdk.tls.disabledAlgorithms安全属性在JDK中的SSL / TLS连接中禁用3DES密码套件。
API描述摘要的注释标记
添加了新的内联标记,{@summary ...}以明确指定用作API描述摘要的文本。默认情况下,API描述的摘要是从第一句推断出来的。这是通过使用简单的算法或java.text.BreakIterator。然而,这种启发式方法并不总是正确的,并且可能导致错误地确定第一句的结尾。新标记可以显式设置API摘要文本而不是推断。
局部变量类型推断
增强Java语言以使用初始值设定项将类型推断扩展为局部变量的声明。
将JDK林合并到单个存储库
将JDK林的众多存储库组合到单个存储库中,以简化和简化开发。
垃圾收集器接口
通过引入干净的垃圾收集器(GC)接口,改进不同垃圾收集器的源代码隔离。
并行完整GC:应用程序类 - 数据共享
要改善启动和占用空间,请扩展现有的类 - 数据共享(“CDS”)功能,以允许将应用程序类放在共享存档中。
线程局部握手
介绍一种在线程上执行回调而不执行全局VM安全点的方法。让它既可能又便宜地停止单个线程而不仅仅是所有线程或没有线程。
移除本机头生成工具(javah)
javah从JDK中删除该工具。
附加的Unicode语言 - 标记扩展
增强java.util.Locale和相关API以实现BCP 47语言标记的其他Unicode扩展。
替代存储器设备上的堆分配
启用HotSpot VM以在另一个内存设备上分配Java对象堆,例如用户指定的NV-DIMM。
基于Java的实验JIT编译器
使基于Java的JIT编译器Graal可用作Linux / x64平台上的实验性JIT编译器。
基于时间的发布版本控制
针对当前和未来基于时间的发布模型,修订Java SE平台和JDK的版本字符串方案以及相关的版本控制信息。