Java 8函数式编程

Java 8函数式编程

作者:[英] Richard Warburton

出版社:人民邮电

出版年:2015年4月

评分:7.6

ISBN:9787115384881

所属分类:网络科技

书刊介绍

《Java 8函数式编程》内容简介

多年以来,函数式编程被认为是少数人的游戏,不适合推广给普罗大众。写作此书的目的就是为了挑战这种思想。本书将探讨如何编写出简单、干净、易读的代码;如何简单地使用并行计算提高性能;如何准确地为问题建模,并且开发出更好的领域特定语言;如何写出不易出错,并且更简单的并发代码;如何测试和调试Lambda表达式。
如果你已经掌握Java SE,想尽快了解Java 8新特性,写出简单干净的代码,那么本书不容错过。
Richard Warburton(作者),一位经验丰富的技术专家,善于解决复杂深奥的技术问题,拥有华威大学计算机科学专业博士学位。近期他一直从事高性能计算方面的数据分析工作。他是英国伦敦Java社区的领导者,组织过面向Java 8中Lambda表达式、日期和时间的Adopt-a-JSR项目,以及Openjdk Hackdays活动。Richard还是知名的会议演讲嘉宾,曾在JavaOne、DevoxxUK和JAX London等会议上演讲。
王群锋(译者),毕业于西安电子科技大学,现任职于IBM西安研发中心,从事下一代统计预测软件的开发运维工作。

作品目录

业界评论
前言
为什么要阅读本书
本书读者对象
怎样阅读本书
使用代码示例
Safari\(^{®}\)
Books
Online
联系我们
致谢

1、章:简介
1.1、为什么需要再次修改Java
1.2、什么是函数式编程
1.3、示例

2、章:Lambda表达式
2.1、第一个Lambda表达式
2.2、如何辨别Lambda表达式
2.3、引用值,而不是变量
2.4、函数接口
2.5、类型推断
2.6、要点回顾
2.7、练习

3、章:流
3.1、从外部迭代到内部迭代
3.2、实现机制
3.3、常用的流操作
3.3.1、
collect(toList())
3.3.2、
map
3.3.3、
filter
3.3.4、
flatMap
3.3.5、
max

min
3.3.6、通用模式
3.3.7、
reduce
3.3.8、整合操作
3.4、重构遗留代码
3.5、多次调用流操作
3.6、高阶函数
3.7、正确使用Lambda表达式
3.8、要点回顾
3.9、练习
3.10、进阶练习

4、章:类库
4.1、在代码中使用Lambda表达式
4.2、基本类型
4.3、重载解析
4.4、
@FunctionalInterface
4.5、二进制接口的兼容性
4.6、
默认方法
默认方法和子类
4.7、多重继承
三定律
4.8、权衡
4.9、接口的静态方法
4.10、
Optional
4.11、要点回顾
4.12、练习
4.13、开放练习

5、章:高级集合类和收集器
5.1、方法引用
5.2、元素顺序
5.3、使用收集器
5.3.1、转换成其他集合
5.3.2、转换成值
5.3.3、数据分块
5.3.4、数据分组
5.3.5、字符串
5.3.6、组合收集器
5.3.7、重构和定制收集器
5.3.8、对收集器的归一化处理
5.4、一些细节
5.5、要点回顾
5.6、练习

6、章:数据并行化
6.1、并行和并发
6.2、为什么并行化如此重要
6.3、并行化流操作
6.4、模拟系统
6.5、限制
6.6、性能
6.7、并行化数组操作
6.8、要点回顾
6.9、练习

7、章:测试、调试和重构
7.1、重构候选项
7.1.1、进进出出、摇摇晃晃
7.1.2、孤独的覆盖
7.1.3、同样的东西写两遍
7.2、Lambda表达式的单元测试
7.3、在测试替身时使用Lambda表达式
7.4、惰性求值和调试
7.5、日志和打印消息
7.6、解决方案:
peak
7.7、在流中间设置断点
7.8、要点回顾

8、章:设计和架构的原则
8.1、Lambda表达式改变了设计模式
8.1.1、命令者模式
8.1.2、策略模式
8.1.3、观察者模式
8.1.4、模板方法模式
8.2、使用Lambda表达式的领域专用语言
8.2.1、使用Java编写DSL
8.2.2、实现
8.2.3、评估
8.3、使用Lambda表达式的SOLID原则
8.3.1、单一功能原则
8.3.2、开闭原则
8.3.3、依赖反转原则
8.4、进阶阅读
8.5、要点回顾

9、章:使用Lambda表达式编写并发程序
9.1、为什么要使用非阻塞式I/O
9.2、回调
9.3、消息传递架构
9.4、末日金字塔
9.5、Future
9.6、
CompletableFuture
9.7、响应式编程
9.8、何时何地使用新技术
9.9、要点回顾
9.10、练习

10、章:下一步该怎么办
封面介绍

热门书摘

面向对象编程是对数据进行抽象,而函数式编程是对行为进行抽象

函数接口是只有一个抽象方法的接口,用作Lambda表达式的类型。

判断一个操作是惰性求值还是及早求值很简单:只需看它的返回值。如果返回值是Stream,那么是惰性求值;如果返回值是另一个值或为空,那么就是及早求值。

相关推荐

微信二维码