前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rxjava概念初识与学习路径推荐

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

作者头像
爬蜥
发布2019-07-09 20:17:51
5410
发布2019-07-09 20:17:51
举报

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

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

RxJava学习路径与概念初始

  1. 了解什么是Observer什么是Observable? Observer是观察者,Observable表明是可以被观察的。行人过红绿灯,行人是Observer,红绿灯的变化是可以Observable的
  2. 初识命令式编程和响应式编程 实际项目中希望数据一发生变化就通知需要知道这个变化的对象,这可以通过观察者模式实现,数据变化观察者立马就可以对变化做出"响应"
  3. 初识函数式编程
  4. 从java8中的stream到RxJava的转变
  5. RxJava的一些API介绍 创建Observable的基本方式,可以先了解最简单的just操作
  6. 了解什么是Hot Observable,什么是 Cold Observable,以及如何将Cold转换成Hot
代码语言:txt
复制
- cold:每次订阅和其它任何订阅它的取到的数据都是一样的
- hot:只能获取从订阅那一刻开始的数据,后续订阅的不能获取之前已经产生的数据Observer的方法介绍
onNext : 每次想通知 Observer 数据变化的时候,Observer的onNext方法就会被调用
  1. 即是Observable又是Observer的对象 相当于自己产生数据自己再消费
代码语言:txt
复制
- PublishSubject获取订阅时候的数据
- BehaviourSubject可以获取订阅之前的1个数据
- ReplaySubject能获取订阅前已经产生的所有数据
- AsyncSubject只获取最后一个数据

RxJava1中部分实例的实现

代码语言:javascript
复制
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());
    }
});
复制代码

RxJava2中的部分案例

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

产生Observable的数据 可以与 产生Observable的数据 对比下区别,大致就可以转换出过来了。

背压:如果生产太快,消费不过来该怎么办?可以反过来限制生产的速度,比如把所有生产的数据都缓存起来,消费者自己来取,比如只有有请求的时候才给数据,没有请求的数据全部扔掉

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RxJava学习路径与概念初始
  • RxJava1中部分实例的实现
  • RxJava2中的部分案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档