Ответ
BehaviorSubject сохраняет последнее отправленное значение и передает его новым подписчикам сразу после подписки.
Пример:
val subject = BehaviorSubject.create<Int>()
subject.onNext(1)
subject.onNext(2)
subject.subscribe { println("Subscriber 1: $it") } // Выведет 2
subject.onNext(3) // Выведет 3 для Subscriber 1
subject.subscribe { println("Subscriber 2: $it") } // Выведет 3
Полезен для передачи текущего состояния (например, кэшированных данных).