Java 12现在处于Release Candidate阶段,这意味着倒计时已经开始!Java 12将于3月19日发布,所以是时候看看* all *计划的新功能了。

添加一个名为Shenandoah的新垃圾收集(GC)算法,通过与正在运行的Java线程同时进行疏散工作来减少GC暂停时间。使用Shenandoah的暂停时间与堆大小无关,这意味着无论堆是200 MB还是200 GB,您都将具有相同的一致暂停时间。

在JDK源代码中添加一套基本的微基准测试,使开发人员可以轻松运行现有的微基准测试并创建新的基准测试。

扩展switch语句,以便它可以用作语句或表达式,并且两个表单都可以使用“传统”或“简化”作用域和控制流行为。这些更改将简化日常编码,并为在switch中使用模式匹配(JEP 305)做好准备。这将是一种预览语言功能。

引入API来模拟关键类文件和运行时工件的名义描述,特别是可从常量池加载的常量。

删除与arm64端口相关的所有源,同时保留32位ARM端口和64位aarch64端口。

在64位平台上使用默认类列表增强JDK构建过程以生成类数据共享(CDS)归档。

如果G1混合收集时间可能超过暂停时间目标,则使其可以中止。

增强G1垃圾收集器,以便在空闲时自动将Java堆内存返回给操作系统。

没有用于Java 12的原始字符串文字

应该注意的是,Raw String Literals功能是从Java 12中撤回的。

尽管如此,关于功能及其功能的对话仍在继续。就在上个月,Brian Goetz重新点燃了关于原始字符串文字的讨论,并在邮件列表中添加了一条新消息,涉及了许多主题,包括过程错误,其他语言如何处理原始字符串应该是接下来的步骤。

请务必查看  消息  以获取所有详细信息。

看看Java 13

我们距离Java 12的普遍可用性仅一个月,但现在是时候向前迈进了!Java 13的开发存储库现已开放。最重要的是,已经有两个JEP候选人:

简介:  使Java编译器能够使用备用转换策略,例如  invokedynamic,以提高指定为编译器内部候选者的某些JDK方法的性能  。具体来说,内化了String::format 和  的调用  Objects::hash。

目标:  使JDK开发人员能够(i)将方法标记为编译时内在化的候选者,以及(ii)描述符合候选方法规范的内在化候选者的适当替代翻译。

摘要:公开JDK Flight Recorder数据以进行连续监视。

目标:

提供用于在磁盘上连续使用JFR数据的API,包括进程内和进程外应用程序。

记录与nonstreaming.case中相同的事件集,如果可能,开销小于1%。

事件流必须能够与非流式记录共存,包括磁盘和基于内存。