Чему вы научитесь
- 1. Диагностика и методология
- 2. Управление памятью и сборка мусора (GC)
- 3. Анализ производительности кода (JIT и бенчмаркинг)
- 4. Работа с памятью вне кучи (Off-Heap)
- 5. Сериализация
- 6. Профилирование и поиск узких мест
- 7. Поиск и устранение утечек памяти
- 8. Кэширование
- 9. Уверенная работа с флагами JVM
- После курса слушатель сможет самостоятельно провести полный цикл оптимизации Java-приложения: от нагрузочного тестирования и профилирования до тонкой настройки GC, JIT и структур данных, включая устранение утечек и внедрение эффективного кэширования.
О курсе
Для кого этот курс
Начальные требования
Обязательные требования (hard skills)
-
Уверенное знание синтаксиса Java 8+
-
Понимание ООП (классы, интерфейсы, наследование, полиморфизм)
-
Работа с коллекциями (List, Map, Set) и исключениями
-
Написание многопоточного кода (Thread, Runnable, synchronized)
-
-
Базовое понимание работы JVM
-
Что такое класслоадеры и как загружаются классы
-
Понятие «куча» (heap) и «стек» (stack)
-
Как запускается Java-приложение (java -jar, classpath)
-
-
Опыт коммерческой разработки или сильных пет-проектов на Spring
-
Минимум 1 год активного написания кода на Java
-
Альтернатива: уверенное выполнение учебных проектов уровня «продвинутый»
-
-
Навыки работы с командной строкой
-
Запуск JAR-файлов с параметрами (-Xmx, -XX:+PrintGCDetails)
-
Работа с переменными окружения (JAVA_HOME, PATH)
-
-
Базовые знания SQL и JDBC
-
Понимание, как приложение обращается к базе данных (будет нужно в модулях по профилированию и кэшированию)
-
Рекомендуемые (но не строгие) требования
-
Знакомство с HTTP и REST (для учебных модулей по кэшированию и профилированию веб-приложений)
-
Опыт работы с Maven (для сборки JMH-проектов и лабораторных работ в Spring)
-
Базовое понимание сборки мусора на уровне «как-то там удаляются ненужные объекты» (можно получить из бесплатных статей до курса)
Что НЕ требуется (этому научим)
-
Глубокое знание внутренностей JVM (байт-кода, структуры GC, JIT-компиляции)
-
Опыт работы с профилировщиками (async-profiler, JFR)
-
Знание off-heap памяти и Unsafe
-
Опыт написания бенчмарков (JMH)
Преподаватели курса
Как проходит обучение
Формат и содержание занятий
Обучение полностью построено на видеозаписях лекций и практических разборов, которые можно смотреть в удобном темпе. Каждый модуль начинается с теоретической лекции, где инструктор объясняет, к примеру, внутреннее устройство JVM, механизмы сборки мусора, JIT-компиляции или профилирования — с использованием слайдов, схем и live-демонстраций кода. Затем следуют видео с разбором готовых проектов и лабораторных работ: вы видите реальный код, его запуск, а также шаги по настройке флагов JVM, отладке и профилированию. Все примеры сопровождаются поясненями, что и почему именно мы делаем, а также демонстрацией работы инструментов промышленного класса (JMH, async-profiler, VisualVM, JMC и т.д.).
Самостоятельная практика
К каждому модулю прилагаются исходные коды проектов и лабораторные задания. Вы останавливаете видео, самостоятельно повторяете разобранные эксперименты (например, пишите микротесты, ищете утечку памяти и т.п.), а затем сверяете свой результат с готовым решением из видео. Такой подход позволяет не просто смотреть, а сразу применять знания.
Что вы получите
- Вы — разработчик или инженер, который может взять любое тормозящее Java-приложение, измерить его профиль, настроить JVM, переписать критический код на off-heap или эффективную сериализацию, добавить кэширование --- и доказать ускорение через JMH-бенчмарки!