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%。
事件流必须能够与非流式记录共存,包括磁盘和基于内存。