О чём курс

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

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

Цели

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

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

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

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

  • Базовые знания Java
  • Опыт работы с IDE (IntelliJ IDEA, Eclipse, NetBeans, VSCode)
  • Для кого

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

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

    Чистый код
    Паттерны проектирования
    Обобщенные типы
    Перечисления
    Аннотации
    Автоупаковка

    Инструменты

    VS Code VS Code
    IntelliJ IDEA IntelliJ IDEA
    NetBeans NetBeans
    Eclipse Eclipse

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

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

    39 900 ₽

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

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

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

    01 Создавать и уничтожать объекты эффективно.
    02 Переопределять методы equals, hashCode, toString.
    03 Использовать обобщенные типы и аннотации.
    04 Применять паттерны проектирования.
    05 Оптимизировать производительность кода.

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

    Михаил

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

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

    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
    Технониколь
    Росатом
    Газпром
    Нлмк
    ВСК
    Синимекс

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

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