我们正焦急等待的Java8中将会支持一些新特性,这些新特性本应当在Java7中加入却被推迟了。现在,Oracle承诺新版本将会是“革命,而非进化”。Java语言的前景将会如何?
在2011JavaOne回忆中,Oracle的Java首席架构师Mark Reinhold给大众介绍了一部分Java8的特性,以及Java9的一些计划。不幸的是,本在Java7中计划的5个关键改进,其中有2个因为Java release版本的日期原因被暂时搁置。Mark承认Java7的更新非常重要,但是暗示了Java8将在基础层面改变原本语言的功能。看一下特性列表,应该是接近真实的。
Java8的release版本将包含两个主要项目:Lambda 和 Jigsaw. 在Lambda项目中, Java将提升优化在多核处理系统中的有效能力。多核是Java将会运行的最常见的硬件支持,所以还是非常有必要优化在多核平台的性能的。Lambda项目将包含一个额外的支持将代码模型化为数据的编程模式的处理系统[1]。新处理系统能够方便地使用Lambda表达式, 作为多核平台的最佳处理方式。这些新特性包括:
l Lambda 表达式的使用
l 扩展的目标类型化
l 方法与构造函数引用
l 默认方法
若想对Lambda 项目了解更多,请访问:http://openjdk.java.net/projects/lambda/
Java8第二个激动人心的项目就是Jigsaw。Jigsaw目的是在JDK中建立一套设计和实施模块化系统的行之有效的方法,并将该模块化系统直接应用于JDK本身。这是为了加强大块代码的可维护性以及提升代码在跨应用程序或大型操作时的可用性。Jigsaw项目带来了相当多的新特性,包括封装,重构,版本控制和模块集成。
若想对Jigsaw项目了解更多,请访问:http://openjdk.java.net/projects/ jigsaw /
通过上述两个项目, 还将会有其他的语言特征加入,如: 加强了Java核心库能够简单的表达集合(collections)的并行计算并且 virtual extension methods 运行在接口中给一个方法指定默认实现。支持传感器的新Date/Time API将增加代码的可部署方式。
Oracle 正在规划并开始讨论Java9开发的关键领域。他们正在考察建立一个自调节的JVM(针对运行效率和性能),改进本地集成和大规模多核可伸缩性。并且在考虑通过元对象协议和资源管理提供对云程序的跨语言支持。Java有着巨大的开发者基数从而正在逐步成为世界上最常用的编程语言,所以Java的新特性并不能让迎合所有人。Oracle期望Java成为未来应用程序的最主要的编程语言,不仅推动了语言的进步,也能同时取得开发者的欢心。
[1]: Given the increasing relevance of callbacks and other functional-style idioms, it is important that modeling code as data in Java be as lightweight as possible.从官网上摘抄的一段,对于modeling code as data的理解,modeling应当是动词所以最后还是翻译为将代码模型化为数据。
[2]: http://www.disi.unige.it/person/ZuccaE/FOOL2011/goetz-slides.pdf 这个pdf解释了很多Java8的特性
原文引用:http://www.learncomputer.com/java-8-new-features/