Backend Developer Java

Уроки с примерами кода; тему можно сразу закрепить вопросами в тренажёре.

Материалы открываются после регистрации на Free.

Уроки по модулям

  1. Язык Java

    7 уроков

    Семантика языка Java: система типов и упаковка, строки и иммутабельность, контракт equals/hashCode, интерфейсы, обобщения и стирание типов, records и sealed-типы, модель исключений. Не синтаксис, а поведение и стоимость решений.

    1. Типы: примитивы, ссылки и упаковка
    2. Строки: пул, иммутабельность и конкатенация
    3. Контракт equals и hashCode
    4. Интерфейсы: default-методы и функциональные интерфейсы
    5. Обобщения и стирание типов
    6. Records, sealed-типы и сопоставление с образцом
    7. Модель исключений
  2. Коллекции

    6 уроков

    Java Collections Framework изнутри: устройство ArrayList и HashMap, стоимость операций, хеширование и коллизии, упорядоченные структуры, fail-fast итераторы и потокобезопасные коллекции. Выбор коллекции — это выбор асимптотики и памяти.

    1. Иерархия коллекций и стоимость операций
    2. ArrayList и LinkedList: массив против связного списка
    3. HashMap изнутри
    4. TreeMap, LinkedHashMap и упорядоченность
    5. Итераторы и fail-fast поведение
    6. Потокобезопасные коллекции
  3. Stream API и функциональный стиль

    5 уроков

    Функциональный слой Java: лямбды и ссылки на методы, конвейер Stream с ленивыми промежуточными операциями, коллекторы, Optional и цена параллельных стримов.

    1. Лямбды и функциональные интерфейсы
    2. Конвейер Stream: ленивость и исполнение
    3. Коллекторы: сбор, группировка, агрегация
    4. Optional: семантика и границы применения
    5. Параллельные стримы и их цена
  4. JVM: память и сборка мусора

    7 уроков

    Среда выполнения Java: устройство памяти (куча, стеки, metaspace), поколения и алгоритмы сборки мусора, загрузка классов, JIT-компиляция и диагностика проблем с памятью. Отделяет гарантии языка от поведения под нагрузкой.

    1. Память JVM: куча, стеки, metaspace
    2. Сборка мусора: достижимость и поколения
    3. Алгоритмы GC: G1, ZGC и выбор коллектора
    4. Ссылки: strong, soft, weak, phantom
    5. Загрузка классов
    6. JIT: от интерпретации к машинному коду
    7. OutOfMemoryError и поиск утечек
  5. Многопоточность

    7 уроков

    Многопоточность в Java: потоки и их жизненный цикл, мониторы и synchronized, volatile и видимость, пулы потоков и ExecutorService, CompletableFuture, явные блокировки и координация, виртуальные потоки. Гонки, взаимоблокировки и как их не создавать.

    1. Потоки: создание, состояния, прерывание
    2. Мониторы: synchronized, wait и notify
    3. Volatile, атомарность и гонки данных
    4. Пулы потоков и ExecutorService
    5. CompletableFuture: композиция асинхронных задач
    6. Явные блокировки и примитивы координации
    7. Виртуальные потоки
  6. Модель памяти Java

    4 урока

    Формальная модель того, что потоки видят в памяти: happens-before, безопасная публикация объектов, атомики и CAS, ThreadLocal. Объясняет, почему код без синхронизации может видеть устаревшие данные.

    1. Happens-before и гонки данных
    2. Безопасная публикация и final
    3. Атомики и CAS
    4. ThreadLocal: изоляция состояния по потоку
  7. Spring Core и Boot

    5 уроков

    Основание Spring: IoC-контейнер и ApplicationContext, конфигурация и сканирование компонентов, автоконфигурация Spring Boot, externalized configuration с профилями и запуск приложения со встроенным сервером.

    1. IoC-контейнер и ApplicationContext
    2. Конфигурация: @Configuration, @Bean и сканирование
    3. Автоконфигурация и стартеры
    4. Внешняя конфигурация и профили
    5. Старт приложения и встроенный сервер
  8. Бины и внедрение зависимостей

    5 уроков

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

    1. Жизненный цикл бина
    2. Области видимости бинов
    3. Способы внедрения зависимостей
    4. Разрешение неоднозначностей
    5. Циклические зависимости
  9. AOP и прокси

    4 урока

    Как работает «магия» Spring: динамические прокси JDK и CGLIB, модель аспектов, @Transactional под капотом и ограничения прокси-подхода — самовызов, final-методы, видимость.

    1. Динамические прокси: JDK и CGLIB
    2. Модель Spring AOP: аспекты, advice, pointcut
    3. @Transactional под капотом
    4. Ограничения прокси: самовызов и границы
  10. Spring MVC и REST API

    5 уроков

    Слой, где контракт API превращается в код: путь запроса через DispatcherServlet, контроллеры и привязка параметров, валидация, единый формат ошибок и сериализация через Jackson.

    1. DispatcherServlet: путь запроса
    2. Контроллеры и привязка параметров
    3. Валидация входных данных
    4. Обработка ошибок и ProblemDetail
    5. Сериализация: Jackson и DTO
  11. HTTP и REST-семантика

    4 урока

    Семантика протокола, на которой держится любой API: методы и коды состояния, безопасность и идемпотентность, кэширование с условными запросами, версионирование и эволюция контракта.

    1. Методы и коды состояния
    2. Безопасность и идемпотентность
    3. Кэширование и условные запросы
    4. Версионирование и эволюция API
  12. JPA и Hibernate

    7 уроков

    ORM поверх реляционной БД: persistence context и жизненный цикл сущности, маппинг связей, стратегии загрузки и проблема N+1, запросы и проекции, транзакции и блокировки, кэши Hibernate. Ключевой навык — видеть, какой SQL порождает код.

    1. ORM и persistence context
    2. Жизненный цикл сущности
    3. Маппинг связей
    4. Ленивая загрузка и проблема N+1
    5. Запросы: JPQL, производные методы и проекции
    6. Транзакции и блокировки в JPA
    7. Кэши Hibernate
  13. JDBC, пулы соединений и миграции

    3 урока

    Слой под ORM: JDBC как протокол доступа, пулы соединений и их настройка, границы транзакций на уровне соединения и версионирование схемы через миграции. Именно этот слой определяет поведение под нагрузкой.

    1. JDBC: соединение, statement, результат
    2. Пулы соединений
    3. Миграции схемы
  14. Kafka и обмен сообщениями

    7 уроков

    Асинхронный обмен событиями через Kafka: архитектура (топики, партиции, offset), продюсеры и консьюмеры, семантики доставки, идемпотентность потребителя и обработка отравленных сообщений, интеграция через Spring Kafka.

    1. Зачем брокер сообщений
    2. Архитектура Kafka
    3. Продюсер: ключи, партиционирование, гарантии
    4. Консьюмеры и группы
    5. Семантики доставки
    6. Идемпотентность потребителя, retry и DLQ
    7. Spring for Apache Kafka
  15. Spring Security

    5 уроков

    Безопасность Spring-приложения: цепочка фильтров и SecurityContext, модель аутентификации, правила авторизации, stateless REST API с JWT, а также CSRF, CORS и сессии.

    1. Цепочка фильтров и SecurityContext
    2. Модель аутентификации
    3. Авторизация: URL и методы
    4. Stateless API: JWT resource server
    5. CSRF, CORS и сессии
  16. Готовность к продакшну

    4 урока

    Что отличает рабочий сервис от учебного: операционные требования, Actuator и health-проверки, корректное завершение под трафиком, конфигурация окружений и обращение с секретами.

    1. Что значит production-ready
    2. Actuator и health-проверки
    3. Корректное завершение
    4. Конфигурация окружений и секреты
  17. Тестирование

    6 уроков

    Пирамида тестов для Java-бэкенда: JUnit 5, тестовые дублёры с Mockito, срезы контекста Spring, интеграционные тесты с реальными зависимостями через Testcontainers и проектирование кода под тестируемость.

    1. Пирамида тестов
    2. JUnit 5
    3. Mockito и тестовые дублёры
    4. Тесты Spring: срезы контекста
    5. Интеграционные тесты с Testcontainers
    6. Проектирование под тестируемость
  18. Наблюдаемость

    4 урока

    Три канала наблюдаемости Java-сервиса: структурное логирование с корреляцией, метрики через Micrometer и распределённая трассировка с OpenTelemetry. Без них поведение под нагрузкой остаётся непрозрачным.

    1. Логи, метрики, трассировки
    2. Структурное логирование
    3. Метрики: Micrometer
    4. Распределённая трассировка
  19. Контейнеры и CI/CD

    5 уроков

    Доставка Java-сервиса: образы и Dockerfile с учётом особенностей JVM, основы Kubernetes (поды, деплойменты, конфигурация), пробы и лимиты ресурсов, конвейер сборки и деплоя.

    1. Контейнеры: изоляция и образы
    2. Dockerfile для Java-приложения
    3. Kubernetes: поды, деплойменты, сервисы
    4. Пробы и ресурсы пода
    5. Конвейер CI/CD
  20. Устойчивость к сбоям

    4 урока

    Сервис среди ненадёжных соседей: режимы отказов и каскады, повторы с таймаутами, размыкатель цепи, изоляция ресурсов и осознанная деградация.

    1. Режимы отказов и каскады
    2. Таймауты и повторы
    3. Размыкатель цепи
    4. Изоляция и деградация
  21. Углублённые направления

    1 урок

    Обзорный модуль-развилка: как выбирать направление роста после уверенного владения основой — профилирование JVM, специализированные протоколы, реактивный стек, соседние языки платформы.

    1. Как выбирать специализацию
  22. Профилирование JVM

    4 урока

    Поиск узких мест по измерениям: методология профилирования, Java Flight Recorder и Mission Control, CPU- и аллокационные профили с флеймграфами, чтение GC-логов и базовая настройка сборщика.

    1. Сначала измерение
    2. Java Flight Recorder и Mission Control
    3. CPU- и аллокационные профили
    4. GC-логи и базовая настройка
  23. gRPC на Java

    3 урока

    Бинарный RPC поверх HTTP/2: контракты в protobuf, генерация кода и виды вызовов, дедлайны и обработка ошибок, стриминг. Когда gRPC выигрывает у REST и какой ценой.

    1. Модель gRPC: protobuf и HTTP/2
    2. Сервисы, стабы и дедлайны
    3. Стриминг
  24. Reactive и WebFlux

    3 урока

    Неблокирующий стек: модель реактивных потоков с обратным давлением, типы Reactor (Mono, Flux), WebFlux против MVC и честное сравнение с виртуальными потоками.

    1. Реактивные потоки и обратное давление
    2. Reactor: Mono, Flux и операторы
    3. WebFlux, MVC и виртуальные потоки

О курсе

Глубокое понимание Java и JVM для backend-разработки. Курс разбирает не синтаксис, а семантику языка и поведение платформы: коллекции и их стоимость, Stream API, устройство JVM — память, сборку мусора, JIT, — модель памяти и многопоточность, внутренности Spring (контейнер, прокси, транзакции), JPA/Hibernate, Kafka и production-практики: тестирование, наблюдаемость, контейнеры, устойчивость. Цель — научиться видеть стоимость абстракций и поведение кода под нагрузкой, а не просто заставлять его работать.

Дальше по теме

Пройдите курс и проверьте темы вслух