JDK 14 Early Access Build#23 ( 2019/11/13 ) 现已上市 。 此版本最值得注意的更改之一是删除了并发标记扫描垃圾收集器 。 JEP 291 [“弃用并发标记扫描(CMS)垃圾收集器”]早在2017年就使用JDK 9和JEP 363 [“删除并发标记扫描(CMS)垃圾收集器”] 弃用了 JDK 14的目标是完全删除CMS垃圾收集器。
下一个屏幕快照展示了CMS垃圾收集器仍可用于JDK 14 Early Access Build#22。
在该JDK 14 Early Access Build#22中 ,我们看到允许指定-XX:+UseConcMarkSweepGC
并仅显示弃用警告:“ 选项UseConcMarkSweepGC在9.0版中已弃用,并且可能在以后的版本中删除。 “
下一个屏幕快照展示了从JDK 14 Early Access Build#23开始,不能将CMS指定为垃圾收集器:
尝试使用-XX:+UseConcMarkSweepGC
运行Java应用程序时,错误消息现在显示为:“ 忽略选项UseConcMarkSweepGC; 在“ 14.0 ” 中删除了支持 。
尽管删除CMS垃圾收集器是我在JDK 14 Early Access Build#23中注意到的最大更改,但是我发现其他一些更改有些有趣。 这些包括:
- JDK-8226297 : 双轴 快速排序改进
- 错误报告中详尽的更改列表。
- JDK-8232684 : 使开关表达式为最终表达式
- 转换开关表达式的功能从“预览”到“最终”( JEP 361 )。
- JDK-8233884 : 避免在安全性库中查找标准字符集
- 提醒您利用StandardCharsets类中定义为
public
字段的常量。
- 提醒您利用StandardCharsets类中定义为
翻译自: https://www.javacodegeeks.com/2019/11/jdk-14-cms-gc-is-obe.html