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地址

相關文章
相關標籤/搜索