首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java今年将有大变化,Java10及11将在2018发布

由于Python的使用者高居不下,而且在人工智能这一领域也战胜了Java成为人工智能的主要开发语言,让Java有了危机感,虽然谈Python取代Java还言之过早,但Oracle还是做好了准备,在2018年持续放大招。

而Java9已在2017年末发布了正式版本。

java9

Java10

其中最值得一提的变化是局部变量的类型推断。其次你应该了解下新增的基于时间的版本命名方式,以及G1(或称Garbage First垃圾收集器)开始支持并行Full GC。

类型推断

JDK 10终于引入了类型推断。许多其他静态类型语言很早就已经支持这个功能了,众多Java开发人员一直希望引入这项功能。

JEP 286引入了关键字var,简化了局部变量的声明,并由编译器根据初始化代码推断变量的类型。

G1的并行Full GC

对于大多数开发者来说,这只是个很小的变化。有的应用程序甚至都不会注意到这个变化。

JDK 9中G1成了默认的垃圾回收器。G1的设计目的旨在避免全面的垃圾回收,但是并不代表这种现象永远不会发生。不幸的是,G1在执行全面回收时仅使用了单线程的“标记-清理-压缩”算法,与之前的并行回收器相比这可能导致性能的下降。

JEP 307实现了这一算法的多线程版,从而解决了该问题。从JDK 10开始,它将使用与Young GC和Mixed GC同样多的线程数。

因此,如果应用程序需要强制垃圾回收器执行全面的回收,那么JDK 10可以提高效率。

JDK 11的计划

Java11除删除废弃的Java EE和CORBA模型、以及引入新的垃圾回收器之外,JDK 11还有可能引入动态的类文件常量,以及在隐含类型的匿名表达式中支持关键字var。

JDK 11目前的范围体现了缩短发布周期所带来的优势,JEP 309和310引入了新功能,而其他两个JEP则负责通过迭代方法改进已有功能。

2017年9月JDK 9发布的时候,Java EE和CORBA模块就被废弃了。一年以后,随着JDK 11的发布,JEP 320将把它们从JDK中删除。所以它们不会在Java中逗留太久,很快就要计划删除了。

继JEP 286在JDK 10中引入局部变量的类型推断后,JEP 323将进一步提升这一功能。将来我们可以看到更多关于这方面的改进。发布周期缩短后,团队可以分步在一次或多次功能发布中完成一个大功能,从而降低发布的难度。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180302A1ACHG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券