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

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

1. Введение

API Java Flow был представлен в Java 9 как реализация спецификации Reactive Stream.

В этом руководстве мы сначала исследуем реактивные потоки. Затем мы узнаем о его связи с RxJava и Flow API.

2. Что такое реактивные потоки?

Реактивный манифест представил Reactive Streams, чтобы указать стандарт для асинхронной обработки потоков с неблокирующим противодавлением.

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

1. Обзор

Apache Cassandra — это масштабируемая распределенная база данных NoSQL . Cassandra передает данные между узлами и обеспечивает постоянную доступность без единой точки отказа. Фактически, Cassandra способна обрабатывать большие объемы данных с исключительной производительностью.

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

В наших примерах мы будем использовать абстракцию репозитория Spring Data и библиотеку Testcontainers . Мы увидим, как настроить ведение журнала запросов Cassandra с помощью конфигурации Spring. Кроме того, мы изучим регистратор запросов Datastax. Мы можем настроить этот встроенный компонент для более расширенного ведения журнала.

2. Настройка тестовой среды

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

1. Обзор

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

По умолчанию Spring умеет преобразовывать только простые типы. Другими словами, как только мы отправим данные в контроллер данных Int , String или Boolean , они будут автоматически привязаны к соответствующим типам Java.

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

2. Привязка отдельных объектов к параметрам запроса

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

1. Обзор

В этом руководстве мы рассмотрим коллекторы Java 8, которые используются на последнем этапе обработки Stream .

Чтобы узнать больше о самом Stream API, мы можем прочитать эту статью .

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

2. Метод Stream.collect ()

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

1. Обзор

Java 9 представляет новый уровень абстракции над пакетами, официально известный как система модулей платформы Java (JPMS), или для краткости «модули».

В этом уроке мы рассмотрим новую систему и обсудим ее различные аспекты.

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

2. Что такое модуль?

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

1. Обзор

В этом кратком обзоре мы сосредоточимся на новых интересных улучшениях Stream API, появившихся в Java 9.

2. Стрим Takewhile/Dropwhile

Обсуждения этих методов неоднократно появлялись на StackOverflow (самый популярный — этот ).

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

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

1. Введение

В этой быстрой статье мы рассмотрим StackWalking API Java 9 .

Новая функциональность обеспечивает доступ к потоку StackFrame , что позволяет нам легко просматривать стек как напрямую, так и с пользой использовать мощный Stream API в Java 8 .

2. Преимущества StackWalker

В Java 8 Throwable::getStackTrace и Thread::getStackTrace возвращают массив StackTraceElement s. Без большого количества ручного кода невозможно было отбросить ненужные кадры и оставить только те, которые нас интересуют.

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

1. Введение

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

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

2. Замки

Давайте посмотрим на класс:

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

1. Обзор

ByteBuffer — один из многих полезных классов в пакете java.nio . Он используется для чтения данных из каналов и прямой записи данных в каналы.

В этом коротком руководстве мы узнаем, как преобразовать ByteBuffer в String в Java .

2. Преобразование байтового буфера в строку

Процесс преобразования ByteBuffer в строку — это декодирование. Для этого процесса требуется Charset .

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

1. Обзор

В этом кратком руководстве мы узнаем о двух методах Collection , которые, казалось бы, делают одно и то же, но это не так: clear() и removeAll() .

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

2. Коллекция.очистить()

Сначала мы погрузимся в метод Collection.clear() . Давайте проверим Javadoc метода . Согласно ему, цель clear() — удалить каждый элемент из списка.