EclipseCon: Oracle 发布 Java 8

  • Alex Blewitt
  • 刘君

2014 年 3 月 20 日

话题:Java语言 & 开发

作为近两年来首次重要更新,Oracle 在今天的EclipseCon上宣布Java 8通用版本发布。可用下载包括 Linux 和 Windows 的 32 及 64 位安装包,Mac OS X 和 Solaris 的 64 位安装包,以及能用于 Raspbian 和其他树莓派平台的 ARM 专用(为 Hard Float ABI 编译)安装包。

Java 8 发布了一系列改进和新特性。包括:

  • Lambda表达式 可以像传数据一样传函数。需要传过滤器或其他谓词的情况下,像传数据那样,把函数隐式转换为单一抽象方法类型(如Runnable从而极大简化代码。(注意,此处称lambda表达式是因为,Java1.1版就以内部类的形式支持闭包;而那些被部分人误认的闭包,实际上是lambda表达式)。好比,x -> x +1
  • 方法引用 允许将所引用的静态方法作为函数,传给其他函数。例如,Integer::parseInt,可以被映射成String集合,以便生成Integer集合。
  • Stream 提供无穷序列(好比ThreadLocalRandom)或固定区间(诸如IntStream所生成的集合)值集的动态遍历。像遍历数据一样,这种并行处理,约简、过滤及映射的能力;和lambda一同为Java提供了函数式编程支持。
  • 扩展方法 提供了向已有接口添加新方法,而不重新编译接口实现类的途径。很多已有集合类利用这一特性为 stream 及其他参考工具的实现提供接口。没有这一特性,方法就要声明在 Collection 工具类中。
  • JSR310提供了全新的日期和时间处理方案,从而避免java.util.Date类和相关包所导致的层出不穷的问题。
  • PermGen不再使用:开发者不必再为加上-XX:PermGen,而提前苦苦猜测应用中会留有的字符串数目。
  • Nashorn 为 JVM 提供原生 JavaScript 支持,使得 Java 或其他基于 JVM 的语言在应用中充分利用 JavaScript。
  • OpenJFX向 OpenJDK 引入 JavaFX,为下一代 IDE 中基于 JavaFX 构建的 GUI 系统奠定基础。

所有主流 IDE 厂商在 Java 8 发布的同一天宣布提供支持,包括Eclipse 4.3.2 的可用补丁IntelliJ 13.1的微版本和NetBeans 8.0的全新版本,都向各自的 IDE 中添加了 Java 8 支持。作为下周开播的一部分,InfoQ 会跟进 Oracle,走访幕后。敬请关注。

查看英文原文:Oracle Releases Java 8 at EclipseCon


感谢杨赛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

Java语言 & 开发