扫描二维码,下载安卓APP
下载安卓APP箭头
客服QQ
箭头给我发消息

客服QQ:2698585038

精通lambda表达式:Java多核编程

综合评级:
★★★★★

定价:
¥39.00

作者:
(美) 那夫特林(Naftalin,M. ) 著;

出版社:
清华大学出版社

出版日期:
2015年8月

页数:
240

字数:
181

ISBN:
9787302405535

书籍介绍

lambda表达式权威指南

《精通lambda表达式:Java多核编程》介绍Java SE 8中与lambda相关的特性是如何帮助Java迎接下一代并行硬件架构的挑战的。本书讲解了如何编写lambda、如何在流与集合处理中使用lambda,并且提供了完整的代码示例。你将学习如何通过lambda表达式充分利用当今多核硬件所带来的性能改进。

主要内容:

● 为何需要lambda,它将如何改变Java编程

● lambda表达式语法

● 流与管道的基本操作

● 使用收集器与汇聚来终止管道

● 创建流

● 分割迭代器、fork/join框架与异常

● 使用微基准测试检查流的性能

● 使用默认方法演化API

作者简介

Maurice Naftalin在IT领域拥有30多年的经验,担任过开发者、设计师、架构师、经理、教师以及作者等角色。Naftalin是经过认证的Java程序员,使用过Java的各个发布版本。他在Java与业务上的经历让他对Java SE 8中引入lambda表达式所带来的根本性变化有着独到的见解。Naftalin是各种大会上的常客,包括一年一度的JavaOne。他与Oracle开发团队协作运营着一个颇受欢迎的网站——www.lambdafaq.org,该网站主要关注于Java 8中的新语言特性。

目录

第1章 走进新生代的java 1

1.1 从外部迭代到内部迭代 2

1.1.1 内部迭代 4

1.1.2 命令模式 6

1.1.3 lambda表达式 8

1.2 从集合到流 11

1.3 从串行到并行 15

1.4 组合行为 18

1.5 小结 22

第2章 Java lambda表达式的基础知识 23

2.1 lambda表达式的定义 24

2.2 lambda与匿名内部类 26

2.2.1 无标识性问题 26

2.2.2 lambda的作用域规则 27

2.3 变量捕获 29

2.4 函数式接口 32

2.5 使用lambda表达式 37

2.6 方法与构造器引用 39

2.6.1 静态方法引用 40

2.6.2 实例方法引用 41

2.6.3 构造器引用 44

2.7 类型检查 44

2.7.1 何为函数类型 45

2.7.2 匹配函数类型 46

2.8 重载解析 48

2.8.1 lambda表达式的重载 49

2.8.2 方法引用的重载 52

2.9 小结 54

第3章 流与管道介绍 55

3.1 流基础 56

3.1.1 面向并行的代码 59

3.1.2 原生流 61

3.2 剖析管道 63

3.2.1 开始管道 63

3.2.2 转换管道 64

3.2.3 非侵入性 75

3.2.4 终止管道 78

3.3 小结 90

第4章 终止流:收集与汇聚 91

4.1 使用收集器 94

4.1.1 独立的预定义收集器 94

4.1.2 组合收集器 99

4.1.3 链接管道 104

4.1.4 示例说明:最流行的主题 106

4.2 剖析收集器 108

4.3 编写收集器 111

4.3.1 完成器 115

4.3.2 示例说明:找到我的书 118

4.3.3 收集器的规则 122

4.4 汇聚 124

4.4.1 对原生值的汇聚 124

4.4.2 对引用流的汇聚 126

4.4.3 通过汇聚来组合收集器 131

4.5 小结 132

第5章 起始流:源与分割迭代器 135

5.1 创建流 136

5.2 分割迭代器与Fork/Join 145

5.3 异常 149

5.4 示例说明:递归grep 155

5.5 小结 166

第6章 流的性能 167

6.1 微基准度量 170

6.1.1 度量动态运行时 171

6.1.2 Java Microbenchmarking Harness 173

6.1.3 试验方法 174

6.2 选择执行模式 178

6.3 流的特性 181

6.4 排序 184

6.5 有状态操作与无状态操作 187

6.6 装箱与拆箱 188

6.7 分割迭代器性能 189

6.8 收集器性能 190

6.8.1 并发Map的合并 190

6.8.2 性能分析:对点进行分组 192

6.8.3 性能分析:找到我的书 192

6.9 小结 194

第7章 使用默认方法演化API 195

7.1 使用默认方法 199

7.2 抽象类的角色是什么 201

7.3 默认方法的语法 203

7.4 默认方法与继承 204

7.5 接口中的静态方法 211

7.6 小结 213

本书总结 215

前言

Java 8可谓Java语言历史上变化最大的一个版本,其承诺要调整Java编程向着函数式风格迈进,这有助于编写出更为简洁、表达力更强,并且在很多情况下能够利用并行硬件的代码。在本书中,你将会发现引入lambda表达式这一表面上看起来细小的变化将如何使这一切成为可能。你将学习到如何通过lambda表达式使用一行代码编写Java函数,如何通过这种功能使用新的Stream API进行编程,如何将冗长的集合处理代码压缩为简单且可读性更好的流程序。学习创建和消费流的机制,分析其性能,能够判断何时应该调用API的并行执行特性。

最后,为将新特性集成到现有的Java平台库中,需要对已有的集合接口进行演化,而之前由于兼容性问题这一点是没法实现的。你将学习到如何通过默认方法来解决这些问题,如何在演化自己的API时使用它们。

第1章 走进新生代的Java

本章为将lambda表达式与流引入到Java中做好了准备,其变化的动机是需要更好的编程模型以及让Java开始为多核处理器提供支持。

第2章 Java lambda表达式基础

本章介绍了lambda表达式的语法,如何使用它们,在何处使用及其与匿名内部类的区别,以及由方法和构造器引用所提供的便捷缩写。

第3章 流与管道介绍

本章介绍了流的生命周期以及流编程的基础知识,提供了通过流源以及中间和终止操作处理集合的示例。

第4章 终止流:集合与汇聚

本章详细介绍了终止操作,特别是如何通过可变的汇聚操作将流元素汇聚到集合中。本章通过收集器(可变汇聚的库实现)扩展了第3章的示例。我们将会看到何时应该超越库实现的限制,以及如何编写自己的收集器。

第5章 起始流:源与分割迭代器

本章介绍了起始流的各种方式,包括使用库类,以及在必要时编写自己的分割迭代器。本章还深入介绍了流编程中的异常处理。通过流处理重新实现grep的各种选项来展现出该模型的灵活性。

第6章 流的性能

本章介绍了如何确定并行执行的流处理的相对性能,方式是将源、中间操作的负载以及终止操作的并发性分割开来进行度量。此外还引入了微基准测试度量流的性能,同时还通过这些方式对书中的其他程序进行了分析。

第7章 使用默认方法来演化API

本章介绍了新引入的默认方法是如何解决Java编程中长久以来存在的问题的,特别是如何首次使得基于接口的Java API的演化成为可能。本章还介绍了静态接口方法的使用。