本文由 ImportNew - 进林 翻译自 Jaxenter。
随着Oracle确认了其余的4个Java 9特性,下一代Java的计划开始变得更清晰了,Oracle已经公布了第二套Java 9特性。自从Oracle在今年早些时候宣布了3个新的API和模块化源码后,这是Oracle首次推出Java 9特性表。
统一JVM日志(JEP 158)
Java 9将会对所有的JVM组件采用相同的日志格式。这将会改变JVM子系统记录事件的方式,以及为日志添加了统一的命令选项。
更多的编译器控制(JEP 165)
Oracle想利用一系列的控制选项来对Hostspot JIT编译器提供更多细粒度的控制。这个改进将会让开发者在优化方面获得更多的方法上下文(method-control)相关控制,同时允许他们改变JVM编译器的控制选项 。
移除过时的GC组合 (JEP 214)
这次更新将会移除三个已经过时的垃圾收集组合:DefNew + CMS, ParNew + SerialOld和增量模式CMS,这些组合在Java 8已经不建议使用了。Oracle声称移除垃圾收集组合动机是为了节省维护成 本。希望这些改动能腾出一些资源来简化Hostspot GC的代码,从而减少bugs和改善其他GC组合。
改善Coin项目的缺陷 (JEP 213)
Coin项目刚开始是为了对Java 7进行一些小的语言修改而建立的。实践证明这些修改是简单易用并行之有效的,所以Oracle计划返回这个项目去解决当时修改语言时的遗留问题。项目发起人已经表明清楚了,这次修改不是进行第二版本的Coin项目,而且他们不再去征求新的语言提议。
已经证实了Java 9将会支持数据报传输层安全性,伴随着还有输出HTML5格式的Javadoc工具。
Oracle同样宣布了他们要完成一个警告清除的项目,这个项目已经开始进行了几年了。对import的处理问题作出更多的改善修复,不建议使用的类将不再会触发警告提醒。
Java 9模块化被证实
Oracle同样承诺了去模块化源代码。模块化JDK源代码的计划在今年年初已经公开了,Oracle的工程团队已经为结构化实施Jigsaw(JEP152和JEP201)项目奠定了基础。
Java平台的首席架构师Mark Reinhold阐明,Oracle用JRE和JDK中的模块代替JAR的计划会对IDE(集成开发环境)会产生一些影响 。“这将会影响到一小类的应用程序,主要是IDE和其他需 要枚举和检测保存在运行映像中的类的开发工具”。
根据Reinhold所说,一个能够检测这些类的新机制 (JEP 220) 将会被启用并且能使这些类在某种程度上免疫以后改变格式造成的影响。他最近的一番话“JAR格式已经走到它的尽头了,现在是做出改变继 续向前的时候了。”给以JAR打包类库和应用程序的程序员中造成了不安。对于这件事,Reinhold称“那些应用依然会很好地运行”。
在今年早8月份被证实的第一组Java 9特性包含了3个新的API和3个小的特性在Java社区里的回应都很冷淡。