Мы используем cookie для стабильной работы сервиса. Подробнее

Java. Продвинутый уровень: функциональное, асинхронное и реактивное программирование + практика с ИИ

4.5
ФорматОнлайн
Длительность36 академ. часов
Объём8 занятий
УровеньПродвинутый
По окончанииУдостоверение о прохождении
Всё для обучения

Как устроено обучение

Практические занятия
Домашние задания
О курсе

Подробнее

Освойте современные функциональные, асинхронные и реактивные подходы к разработке на Java. Курс включает изучение NIO2, CompletableFuture, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket и RSocket. Улучшите производительность бекэнда и создавайте высоконагруженные приложения. В обновлённой версии курса добавлен практикум по ИИ: вы разработаете реактивное приложение для получения данных с REST-эндпоинтов, используя нейросети в качестве ассистента. В ходе лабораторного практикума будут задействованы приемы использования Искусственного интеллекта для кодогенерации, рефакторинга и отладки.
Требования

Что нужно для старта

  • Уверенное владение Java, желательно знание Spring.
Результат

Что вы получите

  • Изучать основные концепции функционального программирования.
  • Применять лямбда-выражения и методы ссылок для упрощения кода.
  • Использовать Stream API для эффективной обработки коллекций данных.
  • Управлять многопоточностью и параллельным программированием с помощью ExecutorService.
  • Создавать асинхронные задачи с Future и CompletableFuture.
  • Обрабатывать исключения в асинхронном коде и взаимодействовать с внешними системами.
  • Понимать принципы реактивного программирования и их преимущества.
  • Работать с библиотекой Reactor для создания реактивных приложений.
  • Применять операторы для трансформации и фильтрации потоков данных. 
  • Оптимизировать производительность и масштабируемость приложений.
  • Использовать ИИ для повышения своей эффективности
Аудитория

Для кого этот курс

  • Разработчик
Содержание

Программа курса

8 занятий
№ТемаЧто внутри
01Функциональная Java

• Функциональные интерфейсы
• Ссылки на метод
• Потоки данных
• Map / filter / reduce
• Агрегационные функции
• Reduce при параллельной и последовательной обработке
• Цепочки потребителей
• Потоковые коллекторы
• Домашняя работа. Практика

02Executor framework. Fork-Join pool

• Использование Executors
• Future интерфейс
• Использование интерфейса Callable
• Отмена задач
• ForkJoin Framework
• Создание пула задач ForkJoin
• Параллельные потоки в Java 8+
• ForkJoin vs. параллельные потоки vs. последовательные потоки

03Неблокирующий ввод-вывод NIO

• Основные различия между Java NIO и IO
• Потоково-ориентированный или буферно-ориентированный
• Блокирующий против неблокирующего ввода-вывода
• Java NIO Buffer
• Java NIO Channel
• Direct буфер
• Mapped file буфер
• Java NIO Selector
• Асинхронный ввод / вывод с NIO
• Блокировка файла
• Cервер NIO
• Архитектура сервера Netty
• Домашняя работа. Практика

04Асинхронная Java (Completable Future)

• Проблемы синхронного кода
• Пример: NodeJS архитектура
• Параллельная обработка потока данных
• CompletableFuture: sync и async методы
• Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins)
• Обработка исключений в CompletableFuture
• Отмена CompletableFuture
• Использование CompletableFuture для реального потока данных
• Домашняя работа. Практика

05Реактивное программирование

• Что такое реактивность?
• Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer)
• Реактивные потоки в Java 9 (Java Reactive Streams)
• Методы для побочных эффектов (side effects)
• Обработка ошибок
• Горячие и холодные потоки (hot/cold)
• Разделяемые и подключаемые потоки (shared/connectable)
• Утилизация потоков (disposing)
• Реактивные операторы (полный каталог)
• Subjects
• Распараллеливание потоков (Schedulers)
• Противодавление (backpressure) и класс Flowable
• Тестирование реактивных потоков

06Проект Reactor

• Операторы Flux / Mono в Reactor
• Работа с backpressure в Reactor
• Reactor и многопоточность (Reactor Schedulers)
• Parallel Flux потоки
• Оборачивание синхронных вызовов
• Тестирование Reactor
• Процессоры (Reactor processors)

07Spring WebFlux и практическое реактивное программирование

• Реактивный доступ к БД
• Реактивный драйвер R2DBC
• Spring Data - реактивные репозитории
• Поддержка пагинации (paging) в Spring Data Reactive
• WebFlux: функциональные контроллеры
• Spring REST контроллеры, возвращающие реактивные данные (Mono / Flux)
• Spring REST контроллеры, возвращающие SSE (server-sent event)
• WebClient: получение реактивных данных с сервера
• SSE и протоколы WebSocket
• Использование WebSocket для передачи / получения данных JSON
• Использование WebSocket для передачи / извлечения двоичных данных
• Протокол RSocket
• Контроллер RSocket на стороне сервера
• RSocket клиент: обмен JSON и двоичными данными
• RSocket с балансировкой нагрузки
• RSocket с взвешенной балансировкой нагрузки
• Использование реактивных потоков с брокером сообщений (RabbitMQ)
• Spring Data MongoDB реактивные репозитории
• Бенчмарки: R2DBC против JDBC и WebFlux против WebMVC
• Архитектура, рекоменд.практика и шаблоны реакт.программирования
• Домашняя работа. Практика

08Реактивные стримы в других технологиях

• Kafka
• RabbitMQ
• gRPC

01Функциональная Java

• Функциональные интерфейсы
• Ссылки на метод
• Потоки данных
• Map / filter / reduce
• Агрегационные функции
• Reduce при параллельной и последовательной обработке
• Цепочки потребителей
• Потоковые коллекторы
• Домашняя работа. Практика

02Executor framework. Fork-Join pool

• Использование Executors
• Future интерфейс
• Использование интерфейса Callable
• Отмена задач
• ForkJoin Framework
• Создание пула задач ForkJoin
• Параллельные потоки в Java 8+
• ForkJoin vs. параллельные потоки vs. последовательные потоки

03Неблокирующий ввод-вывод NIO

• Основные различия между Java NIO и IO
• Потоково-ориентированный или буферно-ориентированный
• Блокирующий против неблокирующего ввода-вывода
• Java NIO Buffer
• Java NIO Channel
• Direct буфер
• Mapped file буфер
• Java NIO Selector
• Асинхронный ввод / вывод с NIO
• Блокировка файла
• Cервер NIO
• Архитектура сервера Netty
• Домашняя работа. Практика

04Асинхронная Java (Completable Future)

• Проблемы синхронного кода
• Пример: NodeJS архитектура
• Параллельная обработка потока данных
• CompletableFuture: sync и async методы
• Объединение (combine), составление (composing) и быстрейший побеждает (quicker wins)
• Обработка исключений в CompletableFuture
• Отмена CompletableFuture
• Использование CompletableFuture для реального потока данных
• Домашняя работа. Практика

05Реактивное программирование

• Что такое реактивность?
• Основы RxJava: наблюдатель и наблюдаемый (Observable и Observer)
• Реактивные потоки в Java 9 (Java Reactive Streams)
• Методы для побочных эффектов (side effects)
• Обработка ошибок
• Горячие и холодные потоки (hot/cold)
• Разделяемые и подключаемые потоки (shared/connectable)
• Утилизация потоков (disposing)
• Реактивные операторы (полный каталог)
• Subjects
• Распараллеливание потоков (Schedulers)
• Противодавление (backpressure) и класс Flowable
• Тестирование реактивных потоков

06Проект Reactor

• Операторы Flux / Mono в Reactor
• Работа с backpressure в Reactor
• Reactor и многопоточность (Reactor Schedulers)
• Parallel Flux потоки
• Оборачивание синхронных вызовов
• Тестирование Reactor
• Процессоры (Reactor processors)

07Spring WebFlux и практическое реактивное программирование

• Реактивный доступ к БД
• Реактивный драйвер R2DBC
• Spring Data - реактивные репозитории
• Поддержка пагинации (paging) в Spring Data Reactive
• WebFlux: функциональные контроллеры
• Spring REST контроллеры, возвращающие реактивные данные (Mono / Flux)
• Spring REST контроллеры, возвращающие SSE (server-sent event)
• WebClient: получение реактивных данных с сервера
• SSE и протоколы WebSocket
• Использование WebSocket для передачи / получения данных JSON
• Использование WebSocket для передачи / извлечения двоичных данных
• Протокол RSocket
• Контроллер RSocket на стороне сервера
• RSocket клиент: обмен JSON и двоичными данными
• RSocket с балансировкой нагрузки
• RSocket с взвешенной балансировкой нагрузки
• Использование реактивных потоков с брокером сообщений (RabbitMQ)
• Spring Data MongoDB реактивные репозитории
• Бенчмарки: R2DBC против JDBC и WebFlux против WebMVC
• Архитектура, рекоменд.практика и шаблоны реакт.программирования
• Домашняя работа. Практика

08Реактивные стримы в других технологиях

• Kafka
• RabbitMQ
• gRPC

Документ после выпуска

Удостоверение о прохождении

Организатор

Автор курса

IBS Training CenterIBS Training Center
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

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

Напишите ваш коментарий, не менее 30 символов

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

Оставьте заявку

Консультант ответит на вопросы о курсе «Java. Продвинутый уровень: функциональное, асинхронное и реактивное программирование + практика с ИИ» и поможет разобраться в деталях обучения.

Комментарий ...

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

Направления:Java

Информация обновлена 21 сентября 2026 г.

Продолжить выбор

Похожие курсы

Взаимодействие с СУБД из Java-приложений посредством технологии JDBC v3
−10%16 академ. часов
Взаимодействие с СУБД из Java-приложений посредством технологии JDBC v3

Изучите JDBC API для создания мощных Java-приложений, взаимодействующих с базами данных. Слушатели научатся применять JDBC API для доступа к реляционным базам данных, выполнения S…

Онлайн5 занятийСредний
Практические занятия
27 900 ₽−10%
25 110 ₽
Java Persistence с использованием Hibernate
−10%16 ноября
Java Persistence с использованием Hibernate

Освойте JPA и Hibernate для эффективной работы с данными в Java‑приложениях. В курсе рассматриваются использование JPA и Hibernate для хранения и управления данными в реляционных…

Онлайн3 занятийСредний
Практические занятия
40 400 ₽−10%
36 360 ₽
Введение в Apache Maven с усилением ИИ
−10%6 академ. часов
Введение в Apache Maven с усилением ИИ

Мастерство сборки Java-проектов с Apache Maven. Освойте современные методы сборки и управления зависимостями Java-проектов с помощью Apache Maven. Научитесь эффективно использоват…

Онлайн12 занятийНачальный
Практические занятия
10 900 ₽−10%
9 810 ₽
Основы Java
1 час
Основы Java

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

Онлайн2 занятийНачальный
Домашние задания
495 ₽
Работа с SOAP веб-сервисами на Java
−10%24 академ. часов
Работа с SOAP веб-сервисами на Java

В рамках курса слушатели получат практические навыки разработки XML based web services на базе платформы Java SE 7, узнают об основных концепциях технологии XML based web services…

Онлайн6 занятийСредний
Практические занятия
34 200 ₽−10%
30 780 ₽
(Архив) ДО Профессия Java-разработчик  2024
−50%8 месяцев
(Архив) ДО Профессия Java-разработчик 2024

Онлайн курс «Java-разработчик» от GeekBrains: получи новую профессию дистанционно! ✅ Курс ориентирован на уровень: Junior. ⌚ Длительность обучения: 8 месяцев. ✅ Помощь в трудоустр…

Онлайн
Помощь с трудоустройством
236 509 ₽−50%
118 255 ₽
Начать без затрат

Бесплатные курсы

CloudCoder Exercises
Бесплатно
CloudCoder Exercises

Курс больше не поддерживается The course consists of a few hundred of programming assignments for Python, Java and C++. Problem set based on CloudCoder exercise repository (http…

Онлайн3 занятий
Бесплатно
Java. Базовый курс
Бесплатно2-4 часа в неделю
Java. Базовый курс

Данный курс предназначен для тех, кто только начинает изучать Java. Мы начнем с самых азов: компиляция и запуск Java-программ, синтаксис языка, система типов, основы объектно-орие…

Онлайн6 занятий
Бесплатно
Adaptive Java
Бесплатно
Adaptive Java

Please note: adaptive courses are no longer supported on Stepik The course consists of few hundreds of programming assignments for Java, ranging from basics up to complex topics.…

Онлайн3 занятий
Бесплатно