致谢

致谢

如果没有许多杰出人士的支持,这本书是不可能完成的。

  • 自愿提供宝贵审稿建议的朋友:Richard Walker、Jan Saganowski、Brian Goetz、Stuart Marks、Cem Redif、Paul Sandoz、Stephen Colebourne、Íñigo Mediavilla、Allahbaksh Asadullah、Tomasz Nurkiewicz和Michael Müller。

  • 曼宁早期访问项目(Manning Early Access Program,MEAP)中在作者在线论坛上发表评论的读者。

  • 在编撰过程中提供有益反馈的审阅者:Antonio Magnaghi、Brent Stains、Franziska Meyer、Furkan Kamachi、Jason Lee、Jörn Dinkla、Lochana Menikarachchi、Mayur Patil、Nikolaos Kaintantzis、Simone Bordet、Steve Rogers、Will Hayworth和William Wheeler。

  • Manning的开发编辑Susan Conant耐心回答了我们所有的问题和疑虑,并为每一章的初稿提供了详尽的反馈,并尽其所能支持我们。

  • Ivan Todorović和Jean-François Morin在本书付印前进行了全面的技术审阅,Al Scherer则在编撰过程中提供了技术帮助。

Raoul-Gabriel Urma

首先,我要感谢我的父母在生活中给予我无尽的爱和支持。我写一本书的小小梦想如今成真了!其次,我要向信任并且支持我的博士生导师和合著者Alan Mycroft表达无尽的感激。我也要感谢合著者Mario Fusco陪我走过这段有趣的旅程。最后,我要感谢在生活中为我提供指导、有用建议,给予我鼓励的朋友们:Sophia Drossopoulou、Aidan Roche、Warris Bokhari、Alex Buckley、Martijn Verburg、Tomas Petricek和Tian Zhao。你们真是太棒啦!

Mario Fusco

我要特别感谢我的妻子Marilena,她无尽的耐心让我可以专注于写作本书;还有我们的女儿Sofia,因为她能够创造无尽的混乱,让我可以从本书的写作中暂时抽身。你在阅读本书时将发现,Sofia还用只有两岁小女孩才会的方式,告诉我们内部迭代和外部迭代之间的差异。我还要感谢Raoul-Gabriel Urma和Alan Mycroft,他们与我一起分享了写作本书的(巨大)喜悦和(小小)痛苦。

Alan Mycroft

我要感谢我的太太Hilary和其他家庭成员在本书写作期间对我的忍受,我常常说“再稍微弄弄就好了”,结果一弄就是好几个小时。我还要感谢多年来的同事和学生,他们让我知道了怎么去教授知识。最后,感谢Mario和Raoul这两位非常高效的合著者,特别是Raoul在苛求“周五再交出一部分稿件”时,还能让人愉快地接受。

目录

  • 版权声明
  • 献词
  • 序言
  • 致谢
  • 关于本书
  • 关于封面图
  • 第一部分 基础知识
  • 第 1 章 为什么要关心Java 8
  • 第 2 章 通过行为参数化传递代码
  • 第 3 章 Lambda表达式
  • 第二部分 函数式数据处理
  • 第 4 章 引入流
  • 第 5 章 使用流
  • 第 6 章 用流收集数据
  • 第 7 章 并行数据处理与性能
  • 第三部分 高效Java 8编程
  • 第 8 章 重构、测试和调试
  • 第 9 章 默认方法
  • 第 10 章 用Optional取代null
  • 第 11 章 CompletableFuture:组合式异步编程
  • 第 12 章 新的日期和时间API
  • 第四部分 超越Java 8
  • 第 13 章 函数式的思考
  • 第 14 章 函数式编程的技巧
  • 第 15 章 面向对象和函数式编程的混合:Java 8和Scala的比较
  • 第 16 章 结论以及Java的未来
  • 附录 A 其他语言特性的更新
  • 附录 B 类库的更新
  • 附录 C 如何以并发方式在同一个流上执行多种操作
  • 附录 D Lambda表达式和JVM字节码