Java 8函数式编程
Richard Warburton
王群锋 译
出版时间:2015年03月
页数:148
“本书最出色的地方在于,它脉络清晰地说明了为什么、在何处以及如何使用Lambda表达式,激励读者改善自己的代码库。”
——Martijn Verburg,jClarity公司CEO,Java Champion
“我超级推荐本书,每个想了解JDK 8新特性的开发人员都应该人手一本。”
——Daniel Bryant,Instant Access技术公司CTO

对于有经验的Java程序员来说,全面了解Java 8引入的Lambda表达式是当务之急。本书作者是资深Java开发者、英国伦敦Java社区负责人,英文原版深受好评,被誉为学习Lambda表达式的必读佳作。这本书言简意赅,示例精到,全面介绍了因为Lambda表达式的引入,Java这门世界上最流行的语言都发生了哪些重大变化,以及匿名函数将如何重塑Java的编程范式。全书篇幅不长,环环相扣,读来令人手不释卷。
函数式编程的确能大幅提升编程效率,但它也并不高深,绝非少数人的游戏。本书可以让所有Java程序员平滑过渡到Java 8时代。前半部分展示了如何正确使用Lambda表达式;后面几章介绍如何利用Lambda表达式提高并发操作的性能、编写出更简单的并发代码。全书采用了示例驱动的写作风格:每介绍完一个概念,紧接着给出一段示例代码,并辅以详尽的讲解。多数章节还在最后提供了练习题,供读者自行练习。

本书主要内容:
· 通过每一章的练习快速掌握Java 8中的Lambda表达式
· 分析流、高级集合和其他Java 8类库的改进
· 利用多核CPU提高数据并发的性能
· 将现有代码库和库代码Lambda化
· 学习Lambda表达式单元测试和调试的实践解决方案
· 用Lambda表达式实现面向对象编程的SOLID原则
· 编写能有效执行消息传送和非阻塞I/O的并发应用
  1. 前言 
  2. 第1章 简介  
  3. 1.1 为什么需要再次修改Java  
  4. 1.2 什么是函数式编程  
  5. 1.3 示例  
  6. 第2章 Lambda表达式  
  7. 2.1 第一个Lambda表达式  
  8. 2.2 如何辨别Lambda表达式  
  9. 2.3 引用值,而不是变量  
  10. 2.4 函数接口  
  11. 2.5 类型推断
  12. 2.6 要点回顾  
  13. 2.7 练习
  14. 第3章 流
  15. 3.1 从外部迭代到内部迭代
  16. 3.2 实现机制
  17. 3.3 常用的流操作
  18. 3.3.1 collect(toList())
  19. 3.3.2 map  
  20. 3.3.3 filter 
  21. 3.3.4 flatMap 
  22. 3.3.5 max和min  
  23. 3.3.6 通用模式
  24. 3.3.7 reduce 
  25. 3.3.8 整合操作
  26. 3.4 重构遗留代码
  27. 3.5 多次调用流操作
  28. 3.6 高阶函数
  29. 3.7 正确使用Lambda表达式
  30. 3.8 要点回顾
  31. 3.9 练习
  32. 3.10 进阶练习
  33. 第4章 类库
  34. 4.1 在代码中使用Lambda表达式
  35. 4.2 基本类型
  36. 4.3 重载解析
  37. 4.4 @FunctionalInterface 
  38. 4.5 二进制接口的兼容性
  39. 4.6 默认方法
  40. 4.7 多重继承
  41. 4.8 权衡
  42. 4.9 接口的静态方法
  43. 4.10 Optional 
  44. 4.11 要点回顾
  45. 4.12 练习
  46. 4.13 开放练习
  47. 第5章 高级集合类和收集器
  48. 5.1 方法引用
  49. 5.2 元素顺序
  50. 5.3 使用收集器
  51. 5.3.1 转换成其他集合
  52. 5.3.2 转换成值
  53. 5.3.3 数据分块
  54. 5.3.4 数据分组
  55. 5.3.5 字符串
  56. 5.3.6 组合收集器
  57. 5.3.7 重构和定制收集器
  58. 5.3.8 对收集器的归一化处理
  59. 5.4 一些细节
  60. 5.5 要点回顾
  61. 5.6 练习
  62. 第6章 数据并行化
  63. 6.1 并行和并发
  64. 6.2 为什么并行化如此重要
  65. 6.3 并行化流操作
  66. 6.4 模拟系统
  67. 6.5 限制
  68. 6.6 性能
  69. 6.7 并行化数组操作
  70. 6.8 要点回顾
  71. 6.9 练习
  72. 第7章 测试、调试和重构
  73. 7.1 重构候选项
  74. 7.1.1 进进出出、摇摇晃晃
  75. 7.1.2 孤独的覆盖
  76. 7.1.3 同样的东西写两遍
  77. 7.2 Lambda表达式的单元测试
  78. 7.3 在测试替身时使用Lambda表达式
  79. 7.4 惰性求值和调试
  80. 7.5 日志和打印消息
  81. 7.6 解决方案:peak  
  82. 7.7 在流中间设置断点 
  83. 7.8 要点回顾
  84. 第8章 设计和架构的原则
  85. 8.1 Lambda表达式改变了设计模式  
  86. 8.1.1 命令者模式
  87. 8.1.2 策略模式
  88. 8.1.3 观察者模式
  89. 8.1.4 模板方法模式
  90. 8.2 使用Lambda表达式的领域专用语言
  91. 8.2.1 使用Java编写DSL  
  92. 8.2.2 实现
  93. 8.2.3 评估
  94. 8.3 使用Lambda表达式的SOLID原则
  95. 8.3.1 单一功能原则
  96. 8.3.2 开闭原则
  97. 8.3.3 依赖反转原则  
  98. 8.4 进阶阅读
  99. 8.5 要点回顾
  100. 第9章 使用Lambda表达式编写并发程序
  101. 9.1 为什么要使用非阻塞式I/O  
  102. 9.2 回调
  103. 9.3 消息传递架构
  104. 9.4 末日金字塔
  105. 9.5 Future  
  106. 9.6 CompletableFuture  
  107. 9.7 响应式编程
  108. 9.8 何时何地使用新技术
  109. 9.9 要点回顾
  110. 9.10 练习
  111. 第10章 下一步该怎么办
书名:Java 8函数式编程
作者:Richard Warburton
译者:王群锋 译
国内出版社:人民邮电出版社
出版时间:2015年03月
页数:148
书号:978-7-115-38488-1
原版书书名:Java 8 Lambdas: Functional Programming for the Masses
原版书出版商:O'Reilly Media
Richard Warburton
 
Richard Warburton,一位经验丰富的技术专家,善于解决复杂深奥的技术问题,拥有华威大学计算机科学专业博士学位。近期他一直从事高性能计算方面的数据分析工作。他是英国伦敦Java社区的领导者,组织过面向Java 8中Lambda表达式、日期和时间的Adopt-a-JSR项目,以及Openjdk Hackdays活动。Richard还是知名的会议演讲嘉宾,曾在JavaOne、DevoxxUK和JAX London等会议上演讲。