Что такое RxJava

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

Ответ

RxJava — это реализация ReactiveX для Java, позволяющая работать с асинхронными событиями и потоками данных в реактивном стиле. Основные компоненты:

  • Observable — источник данных (поток событий).
  • Observer — подписчик, обрабатывающий данные.
  • Operators (map, filter, flatMap) — преобразуют, фильтруют или комбинируют потоки.
  • Schedulers — управляют потоками выполнения (IO, computation, mainThread).

Пример:

Observable.just("Hello", "World")  
    .map(String::toUpperCase)  
    .subscribeOn(Schedulers.io())  
    .observeOn(AndroidSchedulers.mainThread())  
    .subscribe(System.out::println);  

Плюсы: упрощение асинхронных операций, композиция потоков, обработка ошибок. Минусы: кривая обучения, избыточность для простых задач.