Эффективность Java

Эффективность Java

  Сложность

Повышение квалификации

  Длительность

30 ак.ч.

  Формат

онлайн

  Документ

удостоверение о повышении квалификации государственного образца

Стоимость курса
38 000

Подробнее о курсе

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

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

удостоверение о повышении квалификации государственного образца

Автор курса

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

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

  1. Создание и уничтожение объектов [Теория 2 ч.; Практика 2 ч.]

Выбор статических фабричных методов вместо конструкторов Шаблон Builder в случае большого количества параметров конструктора Применение семантики шаблона Singleton с приватным конструктором или enum Применение приватного конструктора Как избежать создания ненужных объектов Удаление устаревших ссылок на объекты Отказ от использования финализаторов

  2. Методы, применяемые ко всем объектам [Теория 1ч.; Практика 1 ч.]

Выполнение общего контракта при переопределении метода equals Обязательное переопределение hashCode при переопределении метода equals Обязательное переопределение toString Осмысленное переопределение клонов Выбор реализации Comparable

  3. Классы и интерфейсы [Теория 2 ч.; Практика 2 ч.]

Минимизация доступности классов и компонентов Использование методов доступа вместо public полей Минимизация изменчивости Предпочтение композиции наследованию Проектирование с учётом дальнейшего наследования Предпочтение интерфейсов абстрактным классам Использование только интерфейсов для определения типов Используйте иерархии классов вместо "тег-классов" Использование объектов-функций для представления стратегий Отдавайте предпочтение статическим внутренним классам над не статическими

  4. Обобщенные типы [Теория 1 ч.; Практика 2 ч.]

В новом коде всегда используйте generic типы Исключение непроверенных предупреждений Предпочтение списков массивам Предпочтение generic типов Предпочтение generic методов Использование ограниченных обобщений для повышения гибкости API Выбор однородных контейнеров typesafe

  5. Enums и аннотации [Теория 1 ч.; Практика 2 ч.]

Использование enums вместо констант int Использование полей экземпляра вместо ordinals Использование EnumSet вместо битовых полей Использование EnumMap вместо порядкового индексирования Эмуляция расширяемых enums с интерфейсами Предпочтение аннотаций паттернам именования Всегда используйте аннотацию Override Использование интерфейсов-маркеров для определения типов

  6. Методы [Теория 1 ч.; Практика 2 ч.]

Проверка параметров на валидность Использование защитного копирования при необходимости Тщательное проектирование сигнатур методов Осмысленное использование перегрузки Осмысленное использование varargs Возврат пустых массивов или коллекций, вместо null Написание документации для всех public элементов API

  7. Общее программирование [Теория 2 ч.; Практика 2 ч.]

Минимизация области видимости локальных переменных Предпочтение циклов for-each традиционным циклам for Знание и использование библиотек Отказ от использования float и double, если требуются точные ответы Предпочтение примитивных типов "классам обвёрткам" Избегайте строк, где более подходящими являются другие типы Учитывайте производительность во время выполнения конкатенации строк Ссылки на объекты по их интерфейсам Предпочтение интерфейсов к reflection Осмысленное использование нативных методов Осмысленная оптимизация Соблюдение общепринятых норм именования

  8. Исключения [Теория 1 ч.; Практика 2 ч.]

Использование исключений только для исключительных условий Использование checked exceptions для проверки условий и unchecked exceptions для ошибок программирования Отказ от ненужного использования checked exceptions Предпочтительное использование стандартных исключений Выброс исключений соответствующих абстракции Документирование всех исключений, выданных каждым методом Включение информации о failure-capture в подробные сообщения Стремление к атомарности сбоев Не допускайте игнорирования исключений

  9. Параллелизм [Теория 1 ч.; Практика 1 ч.]

Синхронизация доступа к общим изменяемым данным Исключение чрезмерной синхронизации Предпочтение использованию Executor-ов Предпочтение утилит параллелизма методам wait и notify Документирование безопасности потоков Осмысленное использование отложенной инициализации Независимость от планировщика потоков Исключение групп потоков

  10. Сериализация [Теория 1 ч.; Практика 1 ч.]

Осмысленная реализация Serializable Использование настраиваемой сериализированной формы Безопасное написание методов readObject Для контроля экземпляров лучше выбрать типы enum вместо readResolve Выбор прокси сериализации вместо сериализированных экземпляров

  Итого на курс 30 часов: теория – 13 ч (43%), практика – 17 ч (56%)

Предварительные требования

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

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

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

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

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

обновлено: 17.05.2025

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

Профессия Java-разработчик

Профессия Java-разработчик

Взаимодействие с СУБД из java-приложений посредством технологии JDBC v3

Взаимодействие с СУБД из java-приложений посредством технологии JDBC v3

Java Persistence с использованием Hibernate

Java Persistence с использованием Hibernate

Java Developer. Professional

Java Developer. Professional

Otus
 онлайн
 6 часов
  Перейти к курсу
Введение в Apache Maven

Введение в Apache Maven

Работа с SOAP веб-сервисами на Java

Работа с SOAP веб-сервисами на Java

Офлайн-курс Java-разработчик

Офлайн-курс Java-разработчик

(Архив) ДО Профессия Java-разработчик  2024

(Архив) ДО Профессия Java-разработчик 2024

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

Трек: Введение в Java

Трек: Введение в Java

Основы языка Java

Основы языка Java

Java-разработчик: пишем приложение «To-do list» за 2 дня

Java-разработчик: пишем приложение «To-do list» за 2 дня

Курс "Java-разработчик" с оплатой после трудоустройства

Курс "Java-разработчик" с оплатой после трудоустройства

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

Наши консультанты ответят на все вопросы
И помогут в выборе

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

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