甲骨文公司首次公布 Java 9 特性

阅读数:2657 2014 年 8 月 24 日

话题:JavaOracleJVM语言 & 开发架构

甲骨文公司公布了第一批针对 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)关注我们,并与我们的编辑和其他读者朋友交流。