技术开发 频道

Java一系列更新也意味着Java 9时代的结束?

  【IT168 评论】前一段时间,Java 9最新发布的新功能颇受争议,但这也是Java传递旧风格的最后一行!

一系列更新也意味着Java 9时代的结束?

  Java 9的模块化改变了游戏规则

  基于Project Jigsaw的模块化功能引起了广大程序开发人员的争议,Java商店对于模块化功能并没有立即更新,而是保守的决定等模块化日渐成熟后在进行更新。

  模块化是以Java平台模块系统的形式将JDK分为一组模块,用于运行、编译或构建时间组合的功能。模块化也被称为一次具有传递性的变更,有利于帮助人们进一步了解模块之间的依赖关系。

  模块化可以让软件开发人员更容易的组装和维护复杂的应用程序,此外,Java 9中的模块化可以使得Java更好的缩小模块化到更小的设备,同时提高安全性和性能。

  模块化主要包括应用程序打包、模块化JDK本身、将源代码重新组合成模块以及重构JDK和Java运行环境映像等。JavaFX UI控件和CSS API现在可用于模块化。

  模块化支持多种配置,可以提高可扩展性、安全性和应用性能,将Java 9轻松的扩展到小型设备是模块化的关键驱动力。

一系列更新也意味着Java 9时代的结束?

  通过模块化,开发人员能够更好的构建和维护Java SE以及Java EE相关库和大型应用程序。但在Java 9的开发过程中,Oracle、IBM、Red Hat等公司对如何对Java平台进行重大更新产生了分歧,故模块体系在今年5月份被拒绝,经过6月份又一次改进之后才在第二次投票中通过。

  编译器的改进

  Java 9升级的新功能中包括几种编译新功能的改进,其中主要的AoT编译仍在实验阶段。此功能可以在虚拟机中启动之前将Java中的类的编译为本机代码,这对于缩短小型和大型应用程序的启动时间以及峰值性能都有重大影响。

  另一个关于Java 9优化的重大方面包括JVM编译器接口的改进,JVM编译器接口允许使用Java编写的编译器作为JVM的动态编译器。JVMCI的API提供访问的VM结构、安装编译代码以及插入JVM编译系统的机制。

  此外,在Java中编写JVM编译器比用C或C ++编写的现有编译器更容易维护和改进,因此,前者预测会比后者在今后更加受欢迎。

  Streams API的增强功能

  Java 9的开发人员利用流程表达计算,从而使数据并行性被有效的利用。而Java 8中的Stream功能,主要用于声明数据处理,同时利用多核架构。

  相对于Java 9中的Streams API,不仅添加了从Stream获取和删除项目的方法、迭代Stream元素,同时扩展可用作Stream源的Java SE API集。

  代码缓存可被分离

  JDK 9语允许将代码高速缓存分为多个段,并且允许扩展,这样大大提高Java 9的性能。Java 9中的迭代器通过改进分离非方法、异形和非异形代码,提高一些基准的执行时间。

  Java 9中弃用或删除的功能

  Java 9中不再支持的几个功能中最主要的是Applet API。许多具有安全意识的浏览器制造商已经取消对Java浏览器插件的支持,并走出了自己的风格,HTML5近几年的流行也加快了这个趋势。开发人员开始逐渐使用Java Web Start之类的替代方案。

一系列更新也意味着Java 9时代的结束?

  此外,CMS垃圾回收器在今后的版本中也会被停止沿用。停用的目的是加快HotSpot虚拟机中其他垃圾收集器的开发,低暂停G1垃圾收集器旨在长期替代CMS。

  同时,JDK 8中以前不推荐使用的垃圾收集组合在JDK 9中也被删除,这样以来会减少垃圾收集器代码库的复杂性,这些组合包括增量CMS、ParNew + SerialOld和DefNew + CMS。

  最新版本开始也意味着Java 9时代的结束

  Oracle最近透露,Java 9是最后一个版本,下一个版本被称为Java 18.3,预计到2018年3月发布。按照Java 9的发布节奏来看,JDK 9也不会被指定为长期的支持版本,相反,下一个长期使用的版本很有可能是Java 18.9。

2
相关文章