甲骨文公司公布了第一批针对 Java9 的增强提议(也被称为 JEPs),这些提议中的内容将会作为 Java 9 需要实现的新特性。
Java 增强提议是一种新的流程,这种流程允许开发和探索出针对 Java 语言以及虚拟机的一些特性,而不需要经历一个完整的规范定义流程(JSR)。这也就意味着 Java 增强提议(JEPs)能够包含的特性范围可以更小,更具有针对性,还可以解决针对 OpenJDK 实现中的特定问题。成功的 Java 增强提议(JEPs)随后可以被转换为标准化的请求(或者打包到现有 Java 标准,作为标准化发布功能点的一部分)。
Java9 的初始特性集是相对比较小,而且相对保守的,但距离 Java9 的发布还有两年多的时间,因此在 GA 版本发布之前还会有很多附加的特性被添加进来。
宣布的 Java 增强提议(JEPs)中包含三个新的 API: 用来和操作系统中的非 Java 进程交互的进程API 的更新,包含HTTP/2 支持的新的HTTP 客户端,以及轻量级的JSON API 。轻量级的JSON API 将会基于JSR 353 中包含的已经标准化的JSON 支持功能进行构建。
也还有三个和Java 虚拟机(JVM)/ 性能相关的特性被公布出来:当线程竞争获取对象锁时,为获得更好的性能而改善锁竞争, JIT 编译器的代码缓存分段(在大型应用上提供更好的 JIT 性能),以及进一步开发“智能”的Java 编译器,名称为sjavac,该编译器能够在多个其他特性的配合下实现并行和共享编译( http://openjdk.java.net/jeps/199 )。
最后,一个曾经承诺过的在 JEP201 中非常吸引人的特性 -模块化源代码。这个特性并不是,至少目前,项目名称为Jigsaw(最初定位为Java 8 的一部分)所提供的模块化解决方案中的内容。取而代之的是,这是一个为清理OpenJDK 的尝试,在构建JDK 本身的同时,通过创建和执行模块边界来奠定模块化的基础。虽然模块系统对于开发者和运行时是不可见的,但这是朝着完全模块化方向的第一步。
其他正在探索Java 演进的项目包括项目Valhalla ,和 Java 本地运行时(JNR)项目。Java 本地运行时项目由 Charles Nutter (JRuby) 创建,主要用来检修 Java 原来的本地接口(JNI)。目前,还不知道上述两个项目是否发布能够成为 Java 9 部分特性的技术,但是这两个项目所针对的目标都是 Java 开发者非常感兴趣的领域。
查看英文原文: Oracle Announces First Java 9 Features
感谢赵震一对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论