О чём курс

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

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

Цели

Улучшить навыки разработки на языке Java на основе обсуждения и анализ практических примеров.

Целевая аудитория

Java-разработчики начального и среднего уровня.

Предварительная подготовка

Для кого

Разработчик Разработчик

Улучшаемые навыки

Оптимизация производительности приложений
Управление памятью
Параллельное и многопоточное программирование
Использование оптимизированных коллекций
Тестирование и мониторинг производительности

Расписание курсов

15.09.2025 - 26.09.2025

8:00-10:30
Дата и время:
15.09.2025-26.09.2025
8:00-10:30

Middle 30 часов

39 900 ₽

35 910 ₽ — для физ. лиц

01.12.2025 - 12.12.2025

8:00-10:30
Дата и время:
01.12.2025-12.12.2025
8:00-10:30

Middle 30 часов

39 900 ₽

35 910 ₽ — для физ. лиц

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

01 Создание и уничтожение объектов [Теория 2 ч.; Практика 2 ч.]
  • Выбор статических фабричных методов вместо конструкторов
  • Шаблон Builder в случае большого количества параметров конструктора
  • Применение семантики шаблона Singleton с приватным конструктором или enum
  • Применение приватного конструктора
  • Как избежать создания ненужных объектов
  • Удаление устаревших ссылок на объекты
  • Отказ от использования финализаторов
02 Методы, применяемые ко всем объектам [Теория 1ч.; Практика 1 ч.]
  • Выполнение общего контракта при переопределении метода equals
  • Обязательное переопределение hashCode при переопределении метода equals
  • Обязательное переопределение toString
  • Осмысленное переопределение клонов
  • Выбор реализации Comparable
03 Классы и интерфейсы [Теория 2 ч.; Практика 2 ч.]
  • Минимизация доступности классов и компонентов
  • Использование методов доступа вместо public полей
  • Минимизация изменчивости
  • Предпочтение композиции наследованию
  • Проектирование с учётом дальнейшего наследования
  • Предпочтение интерфейсов абстрактным классам
  • Использование только интерфейсов для определения типов
  • Используйте иерархии классов вместо "тег-классов"
  • Использование объектов-функций для представления стратегий
  • Отдавайте предпочтение статическим внутренним классам над не статическими
04 Обобщенные типы [Теория 1 ч.; Практика 2 ч.]
  • В новом коде всегда используйте generic типы
  • Исключение непроверенных предупреждений
  • Предпочтение списков массивам
  • Предпочтение generic типов
  • Предпочтение generic методов
  • Использование ограниченных обобщений для повышения гибкости API
  • Выбор однородных контейнеров typesafe
05 Enums и аннотации [Теория 1 ч.; Практика 2 ч.]
  • Использование enums вместо констант int
  • Использование полей экземпляра вместо ordinals
  • Использование EnumSet вместо битовых полей
  • Использование EnumMap вместо порядкового индексирования
  • Эмуляция расширяемых enums с интерфейсами
  • Предпочтение аннотаций паттернам именования
  • Всегда используйте аннотацию Override
  • Использование интерфейсов-маркеров для определения типов
06 Методы [Теория 1 ч.; Практика 2 ч.]
  • Проверка параметров на валидность
  • Использование защитного копирования при необходимости
  • Тщательное проектирование сигнатур методов
  • Осмысленное использование перегрузки
  • Осмысленное использование varargs
  • Возврат пустых массивов или коллекций, вместо null
  • Написание документации для всех public элементов API
07 Общее программирование [Теория 2 ч.; Практика 2 ч.]
  • Минимизация области видимости локальных переменных
  • Предпочтение циклов for-each традиционным циклам for
  • Знание и использование библиотек
  • Отказ от использования float и double, если требуются точные ответы
  • Предпочтение примитивных типов "классам обвёрткам"
  • Избегайте строк, где более подходящими являются другие типы
  • Учитывайте производительность во время выполнения конкатенации строк
  • Ссылки на объекты по их интерфейсам
  • Предпочтение интерфейсов к reflection
  • Осмысленное использование нативных методов
  • Осмысленная оптимизация
  • Соблюдение общепринятых норм именования
08 Исключения [Теория 1 ч.; Практика 2 ч.]
  • Использование исключений только для исключительных условий
  • Использование checked exceptions для проверки условий и unchecked exceptions для ошибок программирования
  • Отказ от ненужного использования checked exceptions
  • Предпочтительное использование стандартных исключений
  • Выброс исключений соответствующих абстракции
  • Документирование всех исключений, выданных каждым методом
  • Включение информации о failure-capture в подробные сообщения
  • Стремление к атомарности сбоев
  • Не допускайте игнорирования исключений
09 Параллелизм [Теория 1 ч.; Практика 1 ч.]
  • Синхронизация доступа к общим изменяемым данным
  • Исключение чрезмерной синхронизации
  • Предпочтение использованию Executor-ов
  • Предпочтение утилит параллелизма методам wait и notify
  • Документирование безопасности потоков
  • Осмысленное использование отложенной инициализации
  • Независимость от планировщика потоков
  • Исключение групп потоков
10 Сериализация [Теория 1 ч.; Практика 1 ч.]
  • Осмысленная реализация Serializable
  • Использование настраиваемой сериализированной формы
  • Безопасное написание методов readObject
  • Для контроля экземпляров лучше выбрать типы enum вместо readResolve
  • Выбор прокси сериализации вместо сериализированных экземпляров
11 Итого на курс 30 часов: теория – 13 ч (43%), практика – 17 ч (56%)

39 900 ₽

35 910 ₽ — для физ. лиц

Записаться на курс

Чему вы научитесь

01 Научитесь применять различные методы и техники для оптимизации производительности Java-приложений
02 Освоите принципы работы с памятью в Java, включая управление сборкой мусора и использование различных типов памяти
03 Научитесь создавать многопоточные приложения и использовать параллелизм для повышения производительности
04 Освоите выбор и использование оптимизированных коллекций и структур данных в Java
05 Научитесь использовать инструменты для тестирования и мониторинга производительности Java-приложений

Курс проводят

Михаил

Соколов Михаил

Эксперт в области разработки и архитектуры ПО

39 900 ₽

35 910 ₽ — для физ. лиц

Записаться на курс

Записаться на курс

39 900 ₽

35 910 ₽ — для физ. лиц

Юр. лицо — 39 900 ₽
Физ. лицо — 35 910 ₽
15.09.2025, Онлайн
15.09.2025, Онлайн
01.12.2025, Онлайн
Открытая дата

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

Повысьте квалификацию И получите диплом
Отзывы учеников
Хороший тренинг и интересные темы! Понравилось, что информация была полезной (особенно про API, функции Java 8 и выше), а практика занимала больше времени, чем теоретическая подготовка. Тренер был действительно хорош в объяснении, всегда был на связи и помогал выполнять задания.
Понравились все темы этого курса Java (например, Concurrency, Serialization, Lambdas...). Отдельно стоит выделить акцент на Java 8+ и практических примерах. Тренер не оставляет вопросы без ответа, может на время отойти от темы и объяснить материал ещё раз, если ты что-то не понял. Хороший материал, но мне кажется, что он больше подходит для начинающих.
Хочу выразить огромную благодарность за этот курс и особенно хочу поблагодарить нашего тренера. Нам предоставили качественную информацию, сложные упражнения и хорошо структурированную информацию. Я получил новые навыки программирования и узнал много полезных трюков. Мне понравилось, что курс был не напряженным, нам дали возможность учиться в своем собственном темпе. Я бы сказал, что это один из лучших курсов, которые я посещал, хотя и один из самых сложных 😊

Связанные курсы

DEV-001_JVA
24 часа

Шаблоны проектирования (GoF). Редакция для Java

Изучите паттерны GoF на Java с практическими примерами и упражнениями. Курс углубляет понимание паттернов проектирования, учит их комбинировать и адаптировать под сложные enterprise-задачи. Вы научитесь не просто "распознавать" паттерны, а осознанно выбирать их для оптимизации архитектуры и командной работы.

от Middle

32 900 ₽

DEV-006_JVA
24 часа

Рефакторинг кода на Java

Пишите чистый и эффективный Java-код, который легко поддерживать! Научитесь выявлять и исправлять «запахи кода», применять лучшие практики рефакторинга и работать с legacy-проектами. Курс даст не только теорию, но и реальные кейсы из опыта топовых разработчиков.

от Middle

32 900 ₽

JVA-007
40 часов

Разработка на платформе Java SE. Базовые темы

Курс для тех, кто хочет освоить разработку на одном из самых востребованных языков программирования. Курс охватывает базовые концепции Java SE, включая синтаксис, объектно-ориентированное программирование, коллекции, исключения и многопоточность. Получите практические навыки, которые помогут вам уверенно чувствовать себя в мире профессиональной разработки.

от Junior

44 500 ₽

JVA-008
40 часов

Разработка на платформе Java SE. Расширенные темы

Курс предназначен для разработчиков уровня Middle, желающих углубить свои знания и навыки в Java SE. Курс охватывает многопоточность, потоки ввода-вывода, оптимизацию производительности и безопасность приложений. Особое внимание уделяется оптимизации производительности и решению сложных задач в реальных проектах.

от Middle

48 900 ₽

Наши ученики работают в:

Наши клиенты

Mail.ru
Альфа-Банк, банковская группа
Лаборатория Касперского
Магнит, розничная сеть
Спортмастер, сеть спортивных магазинов
ПСБ
Сбертех
Дзен
IT One
Ростелеком
Мегафон
Nexign
Ozon
Декатлон
X5 Group
Технониколь
Росатом
Газпром
Нлмк
ВСК
Синимекс

Не нашли, что искали? — Просто напишите, и мы поможем

Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.