Oracle 启动针对 Java 的 Valhalla 项目

  • Ben Evans
  • 马德奎

2014 年 8 月 8 日

话题:JavaJVM语言 & 开发架构

Oracle 宣布了针对 Java 的 Valhalla 项目。这是一个实验性 OpenJDK 项目,用于开发需要更改 Java 语法以及 VM 层支持的主要的 Java 新特性。Valhalla 项目负责人 Brian Goetz 强调,该项目尚处于早期实验阶段,社区不应该期望任何 Valhalla 技术会成为 JDK 9(计划在 2016 年发布)的一部分。该项目与一些现有的 OpenJDK 项目,如 Lambda 项目和 DaVinci Machine 项目(它使 Java 7 增加了 invokedynamic 功能),有类似的目标。

对于 Valhalla,在最初讨论过的特性中,其中一个是对 Java 泛型进行重大修改。Java 的当前版本只允许泛型类型包含引用类型,而且 Java 编译器会在编译时删除它所包含类型的详细信息。这种泛型实现方式(称为类型擦除)一直是 Java 类型系统中最受诟病的特性之一。

Valhalla 项目将探索一种新的泛型实现方式,希望能够提供一种新型的泛型类型,它将允许开发人员使用基本类型的泛型集合。目标是,在 JDK 未来的某个版本中,像 List<int> 这样的类型成为合法的 Java 类型。这一称为“泛型专门化(generic specification)”的特性已经在其它一些 JVM 语言中存在,而且自 JDK 5 首次推出泛型以来,Java 开发人员一直在要求这一特性。

目前,Valhalla 提议的另一个重要特性是值类型。值类型将同时具有 Java 对象和基本类型的部分属性,但其实现方式使得开发人员可以仅仅将它们看作一种新的用户定义的基本类型。John Rose、Brian Goetz 和 Guy Steele 已经发布了一份值类型的初步提案

Valhalla 特性的原型阶段将马上开始。感兴趣的开发人员可以加入 OpenJDK 网站上的 valhalla-dev 邮件列表。读者可以点击这里,阅读 Brian Goetz 最初的公告。

查看英文原文:Oracle Launches Project Valhalla for Java

JavaJVM语言 & 开发架构