Перейти к основному содержимому

· 2 мин. чтения

1. Обзор

RxJava предоставляет различные операторы для преобразования элементов, испускаемых наблюдаемым объектом, в другие наблюдаемые объекты. Двумя наиболее популярными операторами являются flatMap и switchMap . Разницу между ними часто трудно понять новичкам в реактивном программировании.

Для ознакомления с RxJava обратитесь к этой статье .

В этом уроке мы поймем разницу, рассмотрев простой пример.

2. плоская карта

· 7 мин. чтения

1. Введение

После введения в статью о RxJava мы рассмотрим агрегатные и математические операторы.

Эти операции должны ждать, пока исходный Observable выдаст все элементы. Из-за этого эти операторы опасно использовать с Observables , которые могут представлять очень длинные или бесконечные последовательности.

Во-вторых, во всех примерах используется экземпляр TestSubscriber, особая разновидность Subscriber , которую можно использовать для модульного тестирования, выполнения утверждений, проверки полученных событий или переноса имитируемого Subscriber.

Теперь давайте рассмотрим математические операторы.

2. Настройка

· 2 мин. чтения

1. Введение

В этом руководстве мы рассмотрим тип Maybe<T> в RxJava, который представляет собой поток, который может выдать одно значение, завершиться в пустом состоянии или сообщить об ошибке .

2. Тип « может быть »

Maybe — это особый тип Observable , который может выдавать только один или ноль элементов и сообщать об ошибке, если в какой-то момент вычисление завершается неудачно.

В этом отношении это похоже на объединение Single и Completable . Все эти сокращенные типы, включая Maybe, предлагают подмножество операторов Flowable . Это означает , что мы можем работать с Maybe как с Flowable , пока операция имеет смысл для 0 или 1 элементов.

· 9 мин. чтения

1. Обзор

Поведение нескольких подписчиков по умолчанию не всегда желательно. В этой статье мы расскажем, как изменить это поведение и правильно обрабатывать несколько подписчиков.

Но сначала давайте посмотрим на поведение нескольких подписчиков по умолчанию.

2. Поведение по умолчанию

Допустим, у нас есть следующий Observable :

· 7 мин. чтения

1. Обзор

В этой статье мы узнаем о некоторых служебных операторах для работы с Observables в RxJava и о том, как реализовать собственные.

Оператор — это функция, которая принимает и изменяет поведение вышестоящего Observable<T> и возвращает нижестоящий Observable<R> или Subscriber , где типы T и R могут совпадать, а могут и не совпадать.

Операторы оборачивают существующие Observable и улучшают их, как правило, путем перехвата подписки. Это может показаться сложным, но на самом деле это довольно гибко и не так сложно понять.

2. Делай

· 8 мин. чтения

1. Обзор

В этой статье мы сосредоточимся на различных типах планировщиков , которые будем использовать при написании многопоточных программ на основе методов RxJava Observable subscribeOn иObservable . ``

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

Мы можем получить Scheduler из фабричных методов, описанных в классе Schedulers .

2. Поведение потоков по умолчанию

· 3 мин. чтения

1. Введение в StringObservable

Работа с последовательностями строк в RxJava может быть сложной; к счастью , RxJavaString предоставляет нам все необходимые утилиты.

В этой статье мы рассмотрим StringObservable , который содержит несколько полезных строковых операторов. Поэтому, прежде чем приступить к работе, рекомендуется сначала ознакомиться с введением в RxJ ava .

2. Настройка Мавена

Для начала давайте включим RxJavaString в число наших зависимостей:

· 6 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим средства сопоставления аргументов EasyMock. Мы обсудим различные типы предопределенных сопоставителей, а также то, как создать собственный сопоставитель.

Мы уже рассмотрели основы EasyMock во введении к статье EasyMock, поэтому вам, возможно, придется сначала прочитать ее, чтобы ознакомиться с EasyMock.

2. Простой насмешливый пример

Прежде чем мы начнем изучать различные сопоставители, давайте взглянем на наш контекст. На протяжении всего этого руководства мы будем использовать в наших примерах довольно простой пользовательский сервис.

· 4 мин. чтения

В самом начале прошлого года я решил отслеживать свои читательские привычки и делиться лучшим материалом здесь, на ForEach . С тех пор не пропускал обзоров.

Вот так…

1. Весна и Ява

>> Реактивное программирование с помощью Spring 5.0 M1 [ spring.io ]

Реактивная поддержка наконец-то объединена и включена в эту версию фреймворка 5.x.

Если вы раньше воздерживались от его изучения, сейчас самое время намочить ноги.

· 5 мин. чтения

1. Обзор

Строки в Java внутренне представлены char[] , содержащим символы String . И каждый char состоит из 2 байтов, потому что Java внутри использует UTF-16.

Например, если строка содержит слово на английском языке, все первые 8 битов будут равны 0 для каждого char , поскольку символ ASCII может быть представлен одним байтом.

Для представления многих символов требуется 16 бит, но по статистике для большинства требуется всего 8 бит — представление символов LATIN-1. Таким образом, есть возможность улучшить потребление памяти и производительность.

Также важно то, что String обычно обычно занимают большую часть пространства кучи JVM. И из-за того, как они хранятся в JVM, в большинстве случаев экземпляр String может занимать вдвое больше места , чем ему действительно нужно .

В этой статье мы обсудим опцию Compressed String, представленную в JDK6, и новую компактную строку, недавно представленную в JDK9. Оба они были разработаны для оптимизации потребления памяти строками в JMV.