现代Java应用充分利用了微服务、反应式架构以及流式数据等创新设计。现代Java特性,譬如Lambda、流以及大家期待已久的Java模块系统让这些设计的实现极其便利。是时候更新技能工具箱了,只有这样,你才能从容应对迎面而来的种种挑战! 本书通过透彻的示例和通俗的语言讲解了Java语言这些激动人心的特性,作者注重细节,努力降低了学习难度,节省你宝贵的时间。依照本书边学边练,你可以很快掌握流应用程序口、Java模块系统等现代Java新特性,再一步去探寻实现并发的新方法,了解函数式编程如何帮你编写可读性好又容易维护的代码。潜心修炼,你的编程实力必能提高到新的层次。 本书特色: ●对上一版(《Java 8实战》)做了全新改版 ●Java 8、9、10及后续版本新特性介绍 ●流数据处理以及反应式编程 ●Java模块系统
售 价:¥
纸质售价:¥79.80购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版权声明
对本书上一版的赞誉
前言
致谢
关于本书
关于封面图片
第一部分 基础知识
第 1 章 Java 8、9、10以及11的变化
1.1 为什么要关心Java的变化
1.2 Java怎么还在变
1.3 Java中的函数
1.4 流
1.5 默认方法及Java模块
1.6 来自函数式编程的其他好思想
1.7 小结
第 2 章 通过行为参数化传递代码
2.1 应对不断变化的需求
2.2 行为参数化
2.3 对付啰唆
2.4 真实的例子
2.5 小结
第 3 章 Lambda表达式
3.1 Lambda管中窥豹
3.2 在哪里以及如何使用Lambda
3.3 把Lambda付诸实践:环绕执行模式
3.4 使用函数式接口
3.5 类型检查、类型推断以及限制
3.6 方法引用
3.7 Lambda和方法引用实战
3.8 复合Lambda表达式的有用方法
3.9 数学中的类似思想
3.10 小结
第二部分 使用流进行函数式数据处理
第 4 章 引入流
4.1 流是什么
4.2 流简介
4.3 流与集合
4.4 流操作
4.5 路线图
4.6 小结
第 5 章 使用流
5.1 筛选
5.2 流的切片
5.3 映射
5.4 查找和匹配
5.5 归约
5.6 付诸实践
5.7 数值流
5.8 构建流
5.9 概述
5.10 小结
第 6 章 用流收集数据
6.1 收集器简介
6.2 归约和汇总
6.3 分组
6.4 分区
6.5 收集器接口
6.6 开发你自己的收集器以获得更好的性能
6.7 小结
第 7 章 并行数据处理与性能
7.1 并行流
7.2 分支/合并框架
7.3 Spliterator
7.4 小结
第三部分 使用流和Lambda进行高效编程
第 8 章 Collection API的增强功能
8.1 集合工厂
8.2 使用List和Set
8.3 使用Map
8.4 改进的ConcurrentHashMap
8.5 小结
第 9 章 重构、测试和调试
9.1 为改善可读性和灵活性重构代码
9.2 使用Lambda重构面向对象的设计模式
9.3 测试Lambda表达式
9.4 调试
9.5 小结
第 10 章 基于Lambda的领域特定语言
10.1 领域特定语言
10.2 现代Java API中的小型DSL
10.3 使用Java创建DSL的模式与技巧
10.4 Java 8 DSL的实际应用
10.5 小结
第四部分 无所不在的Java
第 11 章 用Optional取代null
11.1 如何为缺失的值建模
11.2 Optional类入门
11.3 应用Optional的几种模式
11.4 使用Optional的实战示例
11.5 小结
第 12 章 新的日期和时间API
12.1 LocalDate、LocalTime、LocalDateTime、Instant、Duration以及Period
12.2 操纵、解析和格式化日期
12.3 处理不同的时区和历法
12.4 小结
第 13 章 默认方法
13.1 不断演进的API
13.2 概述默认方法
13.3 默认方法的使用模式
13.4 解决冲突的规则
13.5 小结
第 14 章 Java模块系统
14.1 模块化的驱动力:软件的推理
14.2 为什么要设计Java模块系统
14.3 Java模块:全局视图
14.4 使用Java模块系统开发应用
14.5 使用多个模块
14.6 编译及打包
14.7 自动模块
14.8 模块声明及子句
14.9 通过一个更复杂的例子了解更多
14.10 小结
第五部分 提升Java的并发性
第 15 章 CompletableFuture及反应式编程背后的概念
15.1 为支持并发而不断演进的Java
15.2 同步及异步API
15.3 “线框–管道”模型
15.4 为并发而生的CompletableFuture和结合器
15.5 “发布–订阅”以及反应式编程
15.6 反应式系统和反应式编程
15.7 路线图
15.8 小结
第 16 章 CompletableFuture:组合式异步编程
16.1 Future接口
16.2 实现异步API
16.3 让你的代码免受阻塞之苦
16.4 对多个异步任务进行流水线操作
16.5 响应CompletableFuture的completion事件
16.6 路线图
16.7 小结
第 17 章 反应式编程
17.1 反应式宣言
17.2 反应式流以及Flow API
17.3 使用反应式库RxJava
17.4 小结
第六部分 函数式编程以及Java未来的演进
第 18 章 函数式的思考
18.1 实现和维护系统
18.2 什么是函数式编程
18.3 递归和迭代
18.4 小结
第 19 章 函数式编程的技巧
19.1 无处不在的函数
19.2 持久化数据结构
19.3 Stream的延迟计算
19.4 模式匹配
19.5 杂项
19.6 小结
第 20 章 面向对象和函数式编程的混合:Java和Scala的比较
20.1 Scala简介
20.2 函数
20.3 类和trait
20.4 小结
第 21 章 结论以及Java的未来
21.1 回顾Java 8的语言特性
21.2 Java 9的模块系统
21.3 Java 10的局部变量类型推断
21.4 Java的未来
21.5 让Java发展得更快
21.6 写在最后的话
附录 A 其他语言特性的更新
A.1 注解
A.2 通用目标类型推断
附录 B 其他类库的更新
B.1 集合
B.2 并发
B.3 Arrays
B.4 Number和Math
B.5 Files
B.6 Reflection
B.7 String
附录 C 如何以并发方式在同一个流上执行多种操作
C.1 复制流
C.2 性能的考量
附录 D Lambda表达式和JVM字节码
D.1 匿名类
D.2 生成字节码
D.3 用InvokeDynamic力挽狂澜
D.4 代码生成策略
看完了
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜