Rxjava概念初识与学习路径推荐

RxJava是使用Java实现的响应式编程库,RxJava即 Reactive Extensions Java。目前有两个版本RxJava1和RxJava2,推荐使用RxJava2,RxJava1已经中止支持了html

ReactiveX即Reactive Extensions,它经过可观测的序列,实现了组合异步和事件驱动.它是一种编程方式。ReactiveX主要的实现方式是扩展 观察者模式 来达到本身的目的。ReactiveX更多介绍戳官网java

RxJava学习路径与概念初始

  1. 了解什么是Observer什么是Observable? 英文原文 或者 掘金翻译react

    Observer是观察者,Observable代表是能够被观察的。行人过红绿灯,行人是Observer,红绿灯的变化是能够Observable的android

  2. 初识命令式编程和响应式编程 英文原文 或者 掘金翻译git

    实际项目中但愿数据一发生变化就通知须要知道这个变化的对象,这能够经过观察者模式实现,数据变化观察者立马就能够对变化作出"响应"github

  3. 初识函数式编程 英文原文 或者 掘金翻译express

  4. 从java8中的stream到RxJava的转变 英文原文 或者 掘金翻译编程

  5. RxJava的一些API介绍 英文原文缓存

    建立Observable的基本方式,能够先了解最简单的just操做,just的源码分析戳这里bash

  6. 了解什么是Hot Observable,什么是 Cold Observable,以及如何将Cold转换成Hot 英文原文

    • cold:每次订阅和其它任何订阅它的取到的数据都是同样的
    • hot:只能获取从订阅那一刻开始的数据,后续订阅的不能获取以前已经产生的数据
  7. Observer的方法介绍 英文原文

    onNext : 每次想通知 Observer 数据变化的时候,Observer的onNext方法就会被调用

  8. 便是Observable又是Observer的对象 英文原文

    至关于本身产生数据本身再消费

    • PublishSubject获取订阅时候的数据
    • BehaviourSubject能够获取订阅以前的1个数据
    • ReplaySubject能获取订阅前已经产生的全部数据
    • AsyncSubject只获取最后一个数据

RxJava1中部分实例的实现

User user = new User();
user.setAge(1);
Observable.just(user).subscribe(new Action1<User>() {
    @Override
    public void call(User user) {
        LOG.info("justVerify just user age:{}", user.getAge());
    }
});
复制代码

产生Observable的数据
RxJava操做符
既是Observable又是Observer案例
异步与阻塞案例

RxJava2中的部分案例

Observable.just(1).subscribe(new Consumer<Integer>() {
        @Override
        public void accept(Integer integer) throws Exception {
            LOG.info("accept:{}", integer);
        }
    });
复制代码

产生Observable的数据 能够与 产生Observable的数据 对比下区别,大体就能够转换出过来了。

背压:若是生产太快,消费不过来该怎么办?能够反过来限制生产的速度,好比把全部生产的数据都缓存起来,消费者本身来取,好比只有有请求的时候才给数据,没有请求的数据所有扔掉

附录

RxJava Github wiki地址

相关文章
相关标签/搜索