自JEP 3:JDK Release Process发布以来,已经过去了240天,并且生产新版本的地狱机器也不想停止。 因此, 下一个候选版本的时间到了。 在此期间,所有网桥都被烧毁,优先级为P2-P5的错误已经毫无意义,并且对发布之前的日期进行了编号。

虫子
并非所有优先级为P1的错误都已关闭。 您可以在bugtracker中查看问题的完整列表。 在这里,最奇怪的事情在等待着我们:使用GTKLookAndFeel时,它们都严格地指代Swing。
头脑里已经说过:“但是这些在Swing中的家伙怎么了?” 这次他们不“怪”。 如果没有人知道,Gtk是一个免费的工具包,用于开发图形界面,尤其是在X11和Wayland的GNU / Linux操作系统上。
从Gtk 3.20开始,他们使用多种样式和小部件的方式已经改变 。 现在使用元素名称代替样式类和类型名称。 Gtk 3.20于2016 年3月21日发布 ,它是一个非常大规模的版本-默认为28933 commits和Wayland。 总的来说,整个Gnome看起来有些不同。

难怪Swing可能会忘记某些东西而不进行测试。 一部分错误已被优先级转移到P2并转移到JDK13。例如, 这个有关 MacOS上Motif的错误(实际上是这样)已不再是一个相关的图形环境:

如果有人真的还在Habré上使用Motif和AWT,那将很有趣。 我希望第十二个JDK不会因此而被取消,否则它将成为Java在其所有新发行历史中最史诗般的文件。
特色功能
此列表中的JEP不会按重要性列出,而仅按序列号列出。 这样一来,您就不会突然认为Shenanda和JMH因为个人的同情而起身。
189: 雪兰多亚:低暂停时间的垃圾收集器(实验性)
如果那是一年前发生的,那将是一件好事,而申南达也加入了LTS。 好的,等等-谢谢。 Shenandoah是一个低坑收集器,由于多线程疏散阶段而达到了低坑收集。 此外,停顿不取决于臀部的大小,因此您可以安全地在产品上转动TB级的堆。
230:微基准套件
基于JMH的测试套件已添加到JDK,JMH本身也已添加。 躺在jdk/jdk/test/micro/org/openjdk/bench
。 JMH是一个框架,用于创建,组装,运行和分析Java和其他JVM语言的微基准,由您自己(由谁知道)编写。 JMH现在已成为微基准的事实上的标准,并且这种JEP的出现是时间问题。
325:开关表达式(预览)
而不是一千个描述:
int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; };
334: JVM常量API
目的是提供一组类型,用于对运行时和classfile中的类,方法和其他实体的描述进行形式化建模,并将它们拖到主要类(如String
或Class
。 它们位于java.lang.invoke.constant
程序包中,不需要这样做,但是您可以在此处查看补丁。
340: 一个AArch64端口,而不是两个
旧的arm64端口被冷落了,但是人们正在积极地使用32位ARM和aarch64。 感谢RedHat和BellSoft提供了这些端口(顺便说一下,BellSoft办事处位于圣彼得堡,毗邻前Oracle办事处)。 通过JDK 12的发布,我们将尝试从公司代表那里获得更详细的评论。
341: 默认CDS存档
作为一项功能,CDS长期以来可供我们使用,但尚不清楚为什么每次编写-Xshare:dump
自己,即使在创建JDK发行版时此命令的默认结果还是可以预知的。 这种烦人的疏忽将在JDK 12中修复,CDS存档将由发行版的创建者生成,甚至对于夜间构建(前提是它们是64位的并且是本机生成的,也不用于交叉编译)。
344: G1可终止的混合集合
G1垃圾收集器的内部机制需要此功能,因此它通常更适合暂停持续时间的要求。 碰巧的是,您可以确定G1一遍又一遍地错误地评估装配的复杂性,尤其是对于旧区域。 在这一点上,您可能会感到害怕,并逐步开始逐步收集,并且在每一步之后都可以中断装配。 有人认为这将使它更好地适合预期的组装时间。
346: 立即从G1返回未使用的承诺内存
现在,G1使用完整的GC或并行组装将提交的内存提供给操作系统。 他和另一位G1都尽力避免这种情况,对此他表示感谢。 但这也意味着内存被吞噬,就好像内存本身没有被占用一样,并且可以强制G1仅以某种外部方式将其擦除。 对于所有在服务器上没有TB的RAM的码头工人和其他赶时髦的人来说,这尤其令人难过。 相反,建议采用与OpenJ9的Shenanda或GenCon已经知道如何识别堆的利用率不足并因此减少其使用量相同的方式进行操作。 在Tomcat上进行的一些测试中,这使内存消耗减少了近一半。
接下来是什么
这是自上而下的审查,我们将尝试以单独的文章(即JEP的翻译,带有基准的截屏视频等)的形式对更接近发行版的功能进行详细分析。 现在,我们必须等待计划于3月19日发布的版本。
分钟的广告。 很快,在4月5日至6日,将举行JPoint会议,该会议将聚集大量对JDK和各种新功能了解很多的人。 例如,肯定会有来自Azul的Simon Ritter的演讲,主题为“ JDK 12:粗心大意的陷阱” 。 最适合讨论最新版本的地方! 您可以在官方网站上了解有关JPoint的更多信息。