购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

本书基于Java 8的特性进行该语言的编程教学,同时根据Java 11、17等版本的新特性做了关键更新。

我的上一本Java书 ——Thinking in Java,4th Edition ,对于用Java 5编程仍然很有用,Android编程用的就是这个语言版本。然而随着Java 8的到来,这门语言发生了许多显著的变化,编写和阅读新版本Java代码的感受都与以往有了明显的不同。于是,花费两年时间编写一本新书也就在情理之中了。

Java 8最大的改进是引入了函数式编程的一些长处,简单来说包括lambda表达式、流(stream),以及“函数式基本类型”(functional primitive)等。即便如此,Java依然是一门受Smalltalk启发而设计的面向对象编程语言。由于受制于向后兼容性,Java无法彻底翻新为一门函数式编程语言。但我还是要为Brian Goetz和他的团队在重重限制之下所做出的贡献喝彩。毋庸置疑,Java 8让这门语言获得了升华,也有助于你学习Java语言。同时,我希望这本书能够让你的Java学习之旅变得轻松和愉悦。

关于Java 8后续版本的新特性

就在本书的编写过程中,Java 17发布了。本书的内容原本是基于Java 8的,但是应人民邮电出版社图灵公司(本书中文版的出版商)的要求,我也会在本书中向读者介绍Java 9到Java 17的新特性,同时会在对应的章节标题中用“新特性:”后加该特性的说明来予以标识。此外,通过目录也可以很容易地找到这些新特性。如果你只能使用Java 8,你大可跳过这些章节,这样做并不会影响你阅读本书的其他内容。也就是说,新特性只会在对应的章节中使用,而不会出现在本书其他关于Java 8的主要内容中。

本书所使用的位于GitHub代码仓库的示例都包含一个基于Java 8环境的构建文件(使用Gradle构建工具生成)。只要你安装的是Java 8(或者是Java 8后续的新版本),这些构建文件就可以正常运行。此外,所有用于演示Java 8后续版本新特性的代码示例,其顶部的注释都会包含一个特殊标签“{NewFeature}”以及实现了该特性的JDK版本号(极少数情况下,你会见到一些未完成的特性)。同时,Gradle构建时会自动排除带有“{NewFeature}”标签的示例。如果想要测试这些代码示例,你需要先安装对应的JDK版本,然后就可以通过命令行来编译对应的代码示例了。

出版说明

本书使用了自动化的构建过程,同样的自动化过程还有解压、编译以及测试所有示例代码。我使用Python 3编写了大量的应用程序来处理所有的自动化过程。

封面设计

本书的封面插图来自美国公共事业振兴署(Works Progress Administration,简称WPA,是1935-1943年美国大萧条时期所创建的一个大型公共事业项目,其目标是援助失业人口重新返回工作岗位)。此外,它也让我想起了《绿野仙踪》系列丛书的插图。我的设计师朋友Daniel Will-Harris和我都十分喜爱这张图片。

致谢

ThinkinginJava 一书面世至今,我很感谢它带给我的诸多益处,尤其是让我有机会在世界各地进行演讲。借此机会,我才得以与更多的人和公司建立联系,这是无价的。

感谢Eric Evans(《领域驱动设计》一书的作者)针对本书书名提供了宝贵意见,也感谢所有在讨论组里帮助我确定书名的人们。

感谢James Ward,他使我得以为本书使用Gradle构建工具,感谢他一直以来提供的帮助以及跟我的友谊。感谢Ben Muschko对构建文件所做的优化,同时也要感谢HansDockter给予Ben时间来做这件事。

感谢Jeremy Cerise与Bill Frasure参与本书的开发者活动,并提供了有价值的帮助。

感谢所有抽出宝贵时间莅临科罗拉多州克雷斯特德比特市,参加我所组织的会议、研讨活动、开发者活动以及其他活动的嘉宾们。即便你们做出的贡献不易让人察觉,但我想说的是,这些贡献依然是至关重要的。

献词

谨献给我敬爱的父亲E.Wayne Eckel,他生于1924年4月1日,卒于2016年11月23日。 aGfi0X7wywZcHnGWdW7FeKp/1Wa+AOOeISLb7+bVulFe8iZAkIzjdwl6lDQ2PmJm

点击中间区域
呼出菜单
上一章
目录
下一章
×