《Java8实战》
现代Java应用充分利用了微服务、反应式架构以及流式数据等创新设计。现代Java特性,譬如Lambda、流以及大家期待已久的Java模块系统让这些设计的实现极其便利。是时候更新技能工具箱了,只有这样,你才能从容应对迎面而来的种种挑战!
本书通过透彻的示例和通俗的语言讲解了Java语言这些激动人心的特性,作者注重细节,努力降低了学习难度,节省你宝贵的时间。依照本书边学边练,你可以很快掌握流应用程序接口、Java模块系统等现代Java新特性,再进一步去探寻实现并发的新方法,了解函数式编程如何帮你编写可读性好又容易维护的代码。潜心修炼,你的编程实力必能提高到新的层次。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
| 一部分 基础知识
第 1 章 Java 8、9、10以及11的变化 2
1.1 为什么要关心Java的变化 2
1.2 Java怎么还在变 4
1.2.1 Java在编程语言生态系统中的位置 5
1.2.2 流处理 6
1.2.3 用行为参数化把代码传递给方法 7
1.2.4 并行与共享的可变数据 8
1.2.5 Java需要演变 9
1.3 Java中的函数 9
1.3.1 方法和Lambda作为一等值 10
1.3.2 传递代码:一个例子 11
1.3.3 从传递方法到Lambda 13
1.4 流 14
1.5 默认方法及Java模块 17
1.6 来自函数式编程的其他好思想 19
1.7 小结 20
第 2 章 通过行为参数化传递代码 22
2.1 应对不断变化的需求 23
2.1.1 初试牛刀:筛选绿苹果 23
2.1.2 再展身手:把颜色作为参数 23
2.1.3 第三次尝试:对你能想到的每个属性做筛选 24
2.2 行为参数化 25
2.3 对付啰唆 30
2.3.1 匿名类 30
2.3.2 第五次尝试:使用匿名类 31
2.3.3 第六次尝试:使用Lambda表达式 32
2.3.4 第七次尝试:将List类型抽象化 33
2.4 真实的例子 33
2.4.1 用Comparator来排序 33
2.4.2 用Runnable执行代码块 34
2.4.3 通过Callable返回结果 35
2.4.4 GUI事件处理 35
2.5 小结 36
第 3 章 Lambda表达式 37
3.1 Lambda管中窥豹 37
3.2 在哪里以及如何使用Lambda 40
3.2.1 函数式接口 40
3.2.2 函数描述符 42
3.3 把Lambda付诸实践:环绕执行模式 44
3.3.1 第 1 步:记得行为参数化 44
3.3.2 第 2 步:使用函数式接口来传递行为 45
3.3.3 第 3 步:执行一个行为 45
3.3.4 第 4 步:传递Lambda 46
3.4 使用函数式接口 47
3.4.1 Predicate 47
3.4.2 Consumer 47
3.4.3 Function 48
3.5 类型检查、类型推断以及限制 52
3.5.1 类型检查 52
3.5.2 同样的Lambda,不同的函数式接口 53
3.5.3 类型推断 55
3.5.4 使用局部变量 56
3.6 方法引用 57
3.6.1 管中窥豹 57
3.6.2 构造函数引用 60
3.7 Lambda和方法引用实战 62
3.7.1 第 1 步:传递代码 62
3.7.2 第 2 步:使用匿名类 62
3.7.3 第 3 步:使用Lambda表达式 62
3.7.4 第 4 步:使用方法引用 63
3.8 复合Lambda表达式的有用方法 63
3.8.1 比较器复合 64
3.8.2 谓词复合 64
3.8.3 函数复合 65
3.9 数学中的类似思想 66
3.9.1 积分 66
3.9.2 与Java 8的Lambda联系起来 68
3.10 小结 68
第二部分 使用流进行函数式数据处理
第 4 章 引入流 72
4.1 流是什么 72
4.2 流简介 76
4.3 流与集合 78
4.3.1 只能遍历一次 79
4.3.2 外部迭代与内部迭代 80
4.4 流操作 82
4.4.1 中间操作 83
4.4.2 终端操作 84
4.4.3 使用流 84
4.5 路线图 85
4.6 小结 85
第 5 章 使用流 86
5.1 筛选 87
5.1.1 用谓词筛选 87
5.1.2 筛选各异的元素 87
5.2 流的切片 88
5.2.1 使用谓词对流进行切片 88
5.2.2 截短流 90
5.2.3 跳过元素 90
5.3 映射 91
5.3.1 对流中每一个元素应用函数 91
5.3.2 流的扁平化 92
5.4 查找和匹配 95
5.4.1 检查谓词是否至少匹配一个元素 95
5.4.2 检查谓词是否匹配所有元素 96
5.4.3 查找元素 96
5.4.4 查找第 一个元素 97
5.5 归约 98
5.5.1 元素求和 98
5.5.2 大值和小值 100
5.6 付诸实践 103
5.6.1 领域:交易员和交易 103
5.6.2 解答 104
5.7 数值流 106
5.7.1 原始类型流特化 107
5.7.2 数值范围 108
5.7.3 数值流应用:勾股数 108
5.8 构建流 111
5.8.1 由值创建流 111
5.8.2 由可空对象创建流 111
5.8.3 由数组创建流 112
5.8.4 由文件生成流 112
5.8.5 由函数生成流:创建无限流 113
5.9 概述 116
5.10 小结 116
第 6 章 用流收集数据 118
6.1 收集器简介 119
6.1.1 收集器用作高级归约 119
6.1.2 预定义收集器 120
6.2 归约和汇总 121
6.2.1 查找流中的大值和小值 121
6.2.2 汇总 122
6.2.3 连接字符串 123
6.2.4 广义的归约汇总 124
6.3 分组 127
6.3.1 操作分组的元素 128
6.3.2 多级分组 130
6.3.3 按子组收集数据 131
6.4 分区 134
6.4.1 分区的优势 135
6.4.2 将数字按质数和非质数分区 136
......
|
最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取
本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com