前言
与时俱进的Java
有时候,很难相信一门已保持了 20 年向后兼容性的语言会发生如此巨大的变化。在 Oracle 于 2014 年 3 月发布 Java SE 8 之前,作为最权威的服务器端编程语言,Java 已然赢得“21 世纪的 COBOL”这一美誉。Java 稳定且应用广泛,同时还不遗余力地追求性能。变化来得很慢,但还是来了。正因为如此,每当 Java 发布新版本时,企业的升级意愿并不迫切。
不过,在 Java SE 8 发布之后,一切都发生了改变。Java SE 8 将“Lambda 项目”(Project Lambda)纳入其中,这个重大的创新将函数式编程(functional programming)的概念引入这门杰出的面向对象语言。lambda 表达式、方法引用以及流从根本上改变了 Java 的习惯用法。自此之后,开发人员一直在努力跟上这门语言前进的步伐。
本书无意评判这些变化能否对 Java 开发有所促进,也无意探讨是否可以通过其他途径实现同样的目的。本书只是告诉读者,新特性已经存在,我们应该如何利用它们完成工作。这也是本书采用范例形式编写的原因。读者可以根据需要阅读本书,了解 Java 引入的新特性将如何帮助自己实现既定目标。
换言之,一旦掌握这种新的程序设计模型,就能享受它所带来的诸多优点。函数式代码往往更简单,而且更易于编写和理解。函数式编程强调不可变性(immutability),这使得编写的并发代码更简洁,调试和运行更容易成功。在 Java 初登舞台时,摩尔定律仍然有效:处理器的速度大约每 18 个月就提高一倍。而如今性能提升的根本在于,即使是手机也已大部分配备了多个处理器。
由于 Java 非常注重保持向后兼容性,不少企业和开发人员在迁移到 Java SE 8 时并未采用新的习惯用法。即便如此,Java SE 8 仍然是一个值得尝试的强大平台,而且 Oracle 已于 2015 年 4 月正式宣布停止对 Java 7 提供支持。
Java SE 8 发布至今已有几年时间,大部分 Java 开发人员目前都已转向 JDK 8。现在,深入了解 Java SE 8 对未来开发的意义和影响正当其时。希望本书能让这一过程变得更加容易。
