第1章 RxJava简介 1
1.1 你需要了解的函数响应式编程 1
1.2 RxJava简介 4
1.3 为何选择RxJava 6
1.4 RxJava能做什么 10
1.5 RxJava 2的Hello World 11
1.6 小结 12
第2章 RxJava基础知识 13
2.1 Observable 13
2.2 Hot Observable和ColdObservable 20
2.3 Flowable 33
2.4 Single、Completable和Maybe 34
2.5 Subject和Processor 48
2.6 小结 63
第3章 创建操作符 64
3.1 create、just和from 65
3.2 repeat 72
3.3 defer、interval和timer 75
3.4 小结 80
第4章 RxJava的线程操作 81
4.1 调度器(Scheduler)种类 81
4.2 RxJava线程模型 83
4.3 Scheduler的测试 99
4.4 小结 106
第5章 变换操作符和过滤操作符 107
5.1 map和flatMap 108
5.2 groupBy 112
5.3 buffer和window 114
5.4 first和last 121
5.5 take和takeLast 125
5.6 skip和skipLast 131
5.7 elementAt和ignoreElements 135
5.8 distinct和filter 139
5.9 debounce 142
5.10 小结 144
第6章 条件操作符和布尔操作符 145
6.1 all、contains和amb 146
6.2 defaultIfEmpty 150
6.3 sequenceEqual 152
6.4 skipUntil和skipWhile 154
6.5 takeUntil和takeWhile 156
6.6 小结 159
第7章 合并操作符与连接操作符 160
7.1 merge和zip 161
7.2 combineLatest和join 167
7.3 startWith 171
7.4 connect、push和refCount 174
7.5 replay 180
7.6 小结 183
第8章 RxJava的背压 184
8.1 背压 184
8.2 RxJava 2.x的背压策略 188
8.3 小结 193
第9章 Disposable和Transformer的使用 194
9.1 Disposable 194
9.2 RxLifecycle和AutoDispose 196
9.3 Transformer在RxJava中的使用 198
9.4 小结 213
第10章 RxJava的并行编程 214
10.1 RxJava并行操作 214
10.2 ParallelFlowable 221
10.3 小结 225
第11章 RxBinding的使用 226
11.1 RxBinding简介 226
11.2 RxBinding使用场景 229
11.3 RxBinding结合RxPermissions的使用 243
11.4 RxBinding使用的注意点 249
11.5 小结 251
第12章 RxAndroid 2.x和Retrofit的使用 252
12.1 RxAndroid 2.x简介 252
12.2 Retrofit简介 257
12.3 Retrofit与RxJava的完美配合 258
12.4 小结 272
第13章 开发EventBus 274
13.1 传统的EventBus 274
13.2 开发一个新的EventBus(一) 276
13.3 开发一个新的EventBus(二) 285
13.4 开发一个新的EventBus(三) 287
13.5 开发一个新的EventBus(四) 294
13.6 小结 302
第14章 使用RxJava封装HttpClient 4.5 303
14.1 HttpClient的介绍 303
14.2 使用RxJava进行重构 309
14.3 实现一个简单的图片爬虫 317
14.4 小结 323
第15章 Spring Boot和RxJava 2 325
15.1 模拟Task任务 325
15.2 构建一个给爬虫使用的代理IP池 335
15.3 小结 347
第16章 Java 8的函数式编程 348
16.1 Java 8的新变化 348
16.2 函数是一等公民 349
16.3 Lambda表达式 352
16.4 Java 8新增的Stream 355
16.5 函数的柯里化 364
16.6 新的异步编程方式CompletableFuture 366
16.7 小结 388
第17章 Kotlin和RxJava 389
17.1 Kotlin简介 389
17.2 使用Kotlin来封装图像框架 393
17.3 小结 405
第18章 展望未来 406
18.1 期待已久的Java 9 406
18.2 其他的Reactive Streams项目 408
18.3 小结 410
附录A RxJava常用的操作符列表 411
附录B RxJava中常用的library 416