编辑推荐
《RxJava基本概念与操作符实例讲解》
内容简介
本书首先讲解了函数式响应式编程的概念,包括Observables、Subject、Processor 等,以及RxJava的优点和用途。然后讲解了RxJava 中必不可少的操作符,包括创建操作符、变换操作符、过滤操作符、条件操作符、布尔操作符、合并操作符和连接操作符。接着详细介绍了RxJava 的线程操作及线程模型,用大量的实例,讲解了RxJava 在Android 上和在Java 后端的使用。最后,介绍了Java 8 的函数式编程的特性,以及对未来编程方式的展望。本书适合Android 开发工程师、Java 后端开发工程师,以及对函数响应式编程、感兴趣的IT 从业人员。
章节目录
版权信息
内容简介
前言
编写这本书的目的
读者对象
如何阅读本书
勘误和支持
致谢
读者服务
第1章 RxJava简介
1.1 你需要了解的函数响应式编程
1. 响应式编程(Reactive Programming,简称RP)
2. 函数式编程(Functional Programming,简称FP)
3. 函数响应式编程(Functional Reactive Programming,简称FRP)
1.2 RxJava简介
1. RxJava产生的由来
2. 什么是Rx
3. ReactiveX的历史
4. Rx模式
1.3 为何选择RxJava
1. Observable是如何实现的
2. 使用回调存在很多问题
3. Rx是一个多语言的实现
4. 响应式编程
1.4 RxJava能做什么
1.5 RxJava 2的Hello World
1.6 小结
第2章 RxJava基础知识
2.1 Observable
do操作符
2.2 Hot Observable和Cold Observable
1. Observable的分类
2. Cold Observable
3. Cold Observable如何转换成Hot Observable
4. Hot Observable 如何转换成 Cold Observable
2.3 Flowable
2.4 Single、Completable和Maybe
1. Single
2. Completable
3. Maybe
4. 小结
2.5 Subject和Processor
2.5.1 Subject 是一种特殊的存在
1. Subject的分类
2. Processor
小结
2.6 小结
第3章 创建操作符
3.1 create、just和from
1. create
2. just
3. from
3.2 repeat
1. repeatWhen
2. repeatUntil
3.3 defer、interval和timer
1. defer
2. interval
3. timer
3.4 小结
第4章 RxJava的线程操作
4.1 调度器(Scheduler)种类
1. RxJava线程介绍
2. Scheduler
4.2 RxJava线程模型
1. 线程调度器
2. 线程调度
3. 示例
4.3 Scheduler的测试
4.4 小结
第5章 变换操作符和过滤操作符
5.1 map和flatMap
1. map操作符
2. flatmap操作符
5.2 groupBy
5.3 buffer和window
1. buffer操作符
2. window操作符
5.4 first和last
1. first操作符
2. last操作符
5.5 take和takeLast
1. take操作符
2. takeLast操作符
5.6 skip和skipLast
skip操作者
2. skipLast操作符
5.7 elementAt和ignoreElements
1. elementAt操作符
2. ignoreElements
5.8 distinct和filter
1. distinct操作符
2. filter操作符
5.9 debounce
5.10 小结
第6章 条件操作符和布尔操作符
6.1 all、contains和amb
1. all操作符
2. contains操作符
2. amb操作符
6.2 defaultIfEmpty
6.3 sequenceEqual
6.4 skipUntil和skipWhile
1. skipUntil操作符
2. skipWhile操作符
6.5 takeUntil和takeWhile
1. takeUntil操作符
2. takeWhile操作符
6.6 小结
第7章 合并操作符与连接操作符
7.1 merge和zip
1. merge操作符
2. zip
7.2 combineLatest和join
1. combineLatest操作符
2. join操作符
7.3 startWith
7.4 connect、push和refCount
7.5 replay
7.6 小结
第8章 RxJava的背压
8.1 背压
8.2 RxJava 2.x的背压策略
1. MISSING
2. ERROR
3. BUFFER
4. DROP
5. LATEST
8.3 小结
第9章 Disposable和Transformer的使用
9.1 Disposable
9.2 RxLifecycle和AutoDispose
1. RxLifecycle
2. AutoDispose
9.3 Transformer在RxJava中的使用
1. Transformer的用途
2. 与compose操作符结合使用
9.4 小结
第10章 RxJava的并行编程
10.1 RxJava并行操作
1. 借助flatMap实现并行
2. 通过Round-Robin算法实现并行
10.2 ParallelFlowable
10.2.1 ParallelFlowable介绍
1. ParallelFlowable实现并行
2. ParallelFlowable 与 Scheduler
10.2.2 ParallelFlowable的操作符
10.2.3 ParallelFlowable和Flowable.flatMap比较
10.3 小结
第11章 RxBinding的使用
11.1 RxBinding简介
1. RxBinding介绍
2. 响应式的Android UI
11.2 RxBinding使用场景
1. 点击事件
2. 长点击事件
3. 防止重复点击
4. 表单的验证
5. 获取验证码倒计时
6. 对RecyclerView的支持
7. 对UI控件进行多次监听
11.3 RxBinding结合RxPermissions的使用
11.3.1 Android 6.0之后权限的改变
11.3.2 RxPermission的介绍
11.3.3 RxBinding结合RxPermissions
1. 在RxBinding中使用RxPermissions
2. RxBinding结合compose,使用RxPermissions
3. 使用多个权限的用法
11.4 RxBinding使用的注意点
11.5 小结
第12章 RxAndroid 2.x和Retrofit的使用
12.1 RxAndroid 2.x简介
1. 介绍
2. 使用
12.2 Retrofit简介
12.3 Retrofit与RxJava的完美配合
12.4 小结
第13章 开发EventBus
13.1 传统的EventBus
13.2 开发一个新的EventBus(一)
13.3 开发一个新的EventBus(二)
13.4 开发一个新的EventBus(三)
13.5 开发一个新的EventBus(四)
13.6 小结
第14章 使用RxJava封装HttpClient 4.5
14.1 HttpClient的介绍
14.2 使用RxJava进行重构
14.3 实现一个简单的图片爬虫
14.4 小结
第15章 Spring Boot和RxJava 2
15.1 模拟Task任务
1. Spring
2. Spring Boot
15.2 构建一个给爬虫使用的代理IP池
1. 设计一个代理IP池
2. 数据存MongoDB
3. 具体实现
4. 定时任务
5. 展示到前端
15.3 小结
第16章 Java 8的函数式编程
16.1 Java 8的新变化
16.2 函数是一等公民
16.3 Lambda表达式
1. JDK中的函数式接口举例
2. 简化的Lambda ——方法引用(Method Reference)
16.4 Java 8新增的Stream
16.4.1 Stream的特性
16.4.2 Java 8新增的函数式接口
1. Function
2. Predicate
3. Consumer
4. Supplier
16.4.3 Stream用法
1. Stream的创建
2. 中间操作
3. 结束操作
16.4.4 并行流
16.5 函数的柯里化
1. 借助Java 8实现柯里化
2. 柯里化的好处
16.6 新的异步编程方式CompletableFuture
1. Future
2. CompletableFuture介绍
2. CompletableFuture介绍
3. CompletableFuture特性
4. CompletableFuture VS Java8 Stream VS RxJava 1 & RxJava 2
16.7 小结
第17章 Kotlin和RxJava
17.1 Kotlin简介
1. 为何需要Kotlin?
2. Kotlin 概述
17.2 使用Kotlin来封装图像框架
1. Kotlin + RxJava 2 封装滤镜的操作
2. DSL风格的编程
3. Anko
4. 封装cv4j图像处理框架
17.3 小结
第18章 展望未来
18.1 期待已久的Java 9
18.2 其他的Reactive Streams项目
1. Reactor 3
2. Akka Streams
3. Vert.x
4. Slick
18.3 小结
附录A RxJava常用的操作符列表
附录B RxJava中常用的library
B.1 Android相关的library
1. RxLifecycle
2. RxLifecycle
3. AutoDispose
4. RxBinding
5. Retrofit
6. sqlbrite
7. Android-ReactiveLocation
8. RxLocation
9. rx-preferences
10. RxPermissions
11. ReactiveNetwork
12. RxDownload
B.2 Java服务端相关的library
1. Hystrix
2. rxjava-jdbc
3. Camel RX
4. vertx-rx
5. async-http-client
RxJava2.x实战是2018年由电子工业出版社出版,作者沈哲。
得书感谢您对《RxJava2.x实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。