Java 11中JVM升级开发者最新福利

Java 9发布后的一年应该“摇滚我们的世界”,我们实际上一直在等待的LTS版本终于来了

duke-11.gif

我们知道的大多数开发人员,团队,公司等尚未更新过Java 8。即使去年发布了Java 9模块,以及随后在3月发布的Java 10。

去年发布了两个新版本的JDK并且相对较少的人使用它们,这有点令人震惊,尽管并不令人惊讶。当然,这只是因为最后两个Java版本的保质期不长。Java 11是自Java 8以来的第一个长期支持(LTS)版本,将是未来3年的最后一个版本。

对于其他版本,非LTS版本,更新仅在前6个月发布,直到下一版本发布。

什么是TL; Java 11的DR?

这个版本中最重要的游戏改变者之一,特别是大型公司,是长期支持元素。公开发布将继续仅在每个新版本的前6个月发布,但保费(付费)支持将在未来3年内提供,如下图所示:

maps.png

除了向客户提供LTS的Java 11之外,还有一些值得关注的更新:

JVM升级

此版本中的大多数JDK增强建议(JEP)都是关于调整和改进JDK本身的性能,并且对开发人员的日常工作的影响相对较小。

Eberhard Wolff 最近在接受JAXenter.com的采访时指出,“我认为Flight Recorder和低开销的堆分析可能很有趣。更多操作功能和更好的JVM可见性非常有用。通常会忽略这些功能,因为它们不会改变语言,因此与开发人员的关联度较低。“

他提到将“提供故障排除Java应用程序的低开销数据收集框架和热点JVM”和低开销的堆纹将推出JEP 331

除了这两个JEP之外,我们将在此版本中获得2个新的垃圾收集器。新的Epsilon GCJEP 318)应该是一个完全被动的GC实现,它可以处理内存分配,但实际上并没有实现任何内存回收机制。此外,JEP 333还引入了实验性 ZGC,一种可扩展的低延迟垃圾收集器。

最后,据说这个新版本的JDK比它的前辈“更轻”,因为许多模块将与平台分离。Java EE和CORBA模块将被删除,Nashorn JavaScript Engine将被弃用,Pack200工具和API也将被淘汰。

几乎看起来Java 11中的大多数更改都是从平台中删除内容。

语言变化

对Java语言的工作方式的改变并没有多少报告。尽管如此,“Java 11中最明显的特征是… 用于声明局部变量的新var语法 ”,根据Guillaume Laforge的说法。很难与之争辩。

JEP 323将“在声明隐式类型的lambda表达式的形式参数时允许使用var”,这是JDK 11中最明显的变化,因为它将对开发人员实际编写代码的方式产生最直接的影响