随着Java 一系列更新也意味着Java 9时代的结束
来源:互联网 发布:淘宝十元包邮专区在哪 编辑:程序博客网 时间:2024/05/17 23:08
前一段时间,Java 9最新发布的新功能颇受争议,但这也是Java传递旧风格的最后一行!
Java 9的模块化改变了游戏规则
基于Project Jigsaw的模块化功能引起了广大程序开发人员的争议,Java商店对于模块化功能并没有立即更新,而是保守的决定等模块化日渐成熟后在进行更新。
模块化是以Java平台模块系统的形式将JDK分为一组模块,用于运行、编译或构建时间组合的功能。模块化也被称为一次具有传递性的变更,有利于帮助人们进一步了解模块之间的依赖关系。
模块化可以让软件开发人员更容易的组装和维护复杂的应用程序,此外,Java 9中的模块化可以使得Java更好的缩小模块化到更小的设备,同时提高安全性和性能。
模块化主要包括应用程序打包、模块化JDK本身、将源代码重新组合成模块以及重构JDK和Java运行环境映像等。JavaFX UI控件和CSS API现在可用于模块化。
模块化支持多种配置,可以提高可扩展性、安全性和应用性能,将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之类的替代方案。
此外,CMS垃圾回收器在今后的版本中也会被停止沿用。停用的目的是加快HotSpot虚拟机中其他垃圾收集器的开发,低暂停G1垃圾收集器旨在长期替代CMS。
同时,JDK 8中以前不推荐使用的垃圾收集组合在JDK 9中也被删除,这样以来会减少垃圾收集器代码库的复杂性,这些组合包括增量CMS、ParNew SerialOld和DefNew CMS。
最新版本开始也意味着Java 9时代(Java1-9)的结束
Oracle最近透露,Java 9是最后一个版本,下一个版本被称为Java 18.3,预计到2018年3月发布。按照Java 9的发布节奏来看,JDK 9也不会被指定为长期的支持版本,相反,下一个长期使用的版本很有可能是Java 18.9。
- 随着Java 一系列更新也意味着Java 9时代的结束
- 邢质斌退休意味着一个时代的结束
- 结束也意味着新的开始
- 结束,意味着,新的开始!
- 随着帝企鹅这一系列的组合拳,腾讯将在移动时代以微信为杀伤性核武器
- java 日期的一系列操作
- java 日期的一系列操作
- 传智播客的java培训结束了,我的爱也结束了
- 旧的结束,意味着新的开始...
- 数据库时代的终结意味着什么?
- 5G 时代的到来意味着什么?
- 到现在为止,成功调试完成我的第一个Java程序,意味着我也要进行Java这一行了,请看我的代码!
- 一个时代的结束
- 关于java进阶的一系列好博客
- JAVA:对数据库的一系列操作代码
- Java实现AVL的一系列操作
- 而随着国家一系列房改措施的出台
- JAVA的时代
- 【NOIP2017提高A组模拟10.5】Ping
- 强连通分量与缩点(Tarjan算法)(洛谷P3387)
- K近邻(KNN)算法---Python实现(一)
- 位字节
- DIY空气检测仪:攀藤G5ST分析仪
- 随着Java 一系列更新也意味着Java 9时代的结束
- Codeforces Round #438 B. Race Against Time 思路很重要
- 8、继承和限制控制
- linux c监控U盘插拔事件
- rocketmq将github最新源码打成tar.gz包/rocketmq控制台编译安装
- 15算法课程 38. Count and Say
- openwrt关闭ssh功能
- GaoHash算法根据经纬度检索附近
- 素数筛法