发表于2024-12-27
精通lambda表达式:Java多核编程 [Mastering Lambdas: Java Programming in a Multicore] pdf epub mobi txt 电子书 下载
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的演化成为可能。本章还介绍了静态接口方法的使用。
本书读者对象
本书面向那些使用过Java 5及之前任意版本,同时又听说过Java 8中激动人心的变化,并且想要学习它们的Java开发者。你无须了解其他语言中的lambda表达式与闭包,也无须拥有函数式编程经验(当然,如果知道会更好)。
除了Java集合框架的标准集合外,本书不要求你熟悉其他的平台库,如果对标准集合不熟悉,请适时参阅Javadoc文档。
某些章节提供了一些高级主题:它们适合于延伸阅读。
示例、反馈与进一步学习
书中的代码可以从Oracle出版社的网站下载,网址是www. OraclePressBooks.com。源代码与勘误也位于本书的产品页www. mhprofessional.com。只需要搜索ISBN并下载必要的文件即可。
读者可以访问本书的支持网站www.masteringlambdas.org进行讨论、寻找进一步学习的链接,还可以联系作者。
不错
评分物流快,质量好
评分翻译可以,笔误交多,缺不少空格
评分我买了很多ORACLE出版的书,高新技术开发区到位。不错不错。
评分书是正版, 很不错, 双十一优惠很大, 希望活动能更多些, 买了一堆书, 有需要的时候就可以直接拿来看了. 书已经看完了, 很不错, 赶紧转java8, 代码越来越清晰
评分非常给力,就是我想要的。
评分不错
评分java程序员经典图书
评分很薄 很薄很薄 很薄很薄 很薄
精通lambda表达式:Java多核编程 [Mastering Lambdas: Java Programming in a Multicore] pdf epub mobi txt 电子书 下载