Какие знаешь особенности RxJava

«Какие знаешь особенности RxJava» — вопрос из категории Реактивное программирование, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

RxJava — это библиотека для реактивного программирования, основанная на паттерне Observer. Основные особенности:

  1. Асинхронность — обработка событий в фоновых потоках без блокировки UI.
  2. Цепочки операторов — можно комбинировать map, filter, flatMap и др. для сложных преобразований данных.
  3. Schedulers — управление потоками через subscribeOn/observeOn (например, Schedulers.io() для сетевых запросов).
  4. Backpressure — контроль скорости обработки данных (например, Flowable для больших потоков).
  5. Disposable — управление жизненным циклом подписок (чтобы избежать утечек памяти).

Пример:

Observable.just("Hello, RxJava!")
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe { text -> println(text) }