Курс NT-Java Adv Java, расширенные темы SDK 1.8 | nt.ua

Курс NT-Java Adv Java, расширенные темы SDK 1.8

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


По окончании курса слушатели смогут:
  • эффективно разрабатывать программное обеспечение на языке программирования Java с использованием современных технологий.
Аудитория

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


Для эффективного обучения на курсе, слушатели должны обладать следующими знаниями и навыками:
  • опыт программирования на Java.
  1. Тема 1
    • Краткая история от OAK к Java2
    • Версии SDK и JVM, эволюция развития. От ООП к функциональному и аспектно-ориентированному программированию
  2. Тема 2
    • Запуск JVM, порядок загрузки классов, приложения JSE и JEE, многопоточное программирование
    • Распределение памяти JVM. Heap, Metaspace, Stack – параметры, определяющие размеры областей. Сборка мусора G), 4 основных алгоритма сборки, параметры управления алгоритмами GC
    • JMX-интерфейс. Утилиты мониторинга JVM (JVisualVM, JMC), сравнение и использование
    • Терминальные утилиты наблюдения за JVM, jmap, jstack.
    • Тестовые задачи и наблюдение за распределением объектов в куче
    • Профилирование приложения средствами Java и утилитами мониторинга
  3. Тема 3
    • Загрузка классов в JVM, назначение класса Class, объект класса Class с описанием структуры классов, загруженных в JVM, выполнение статического блока класса
    • Типы ссылок в Java. Жесткие, мягкие, слабые, фантомные ссылки. Экономия оперативной памяти, создание кешей объектов, когда объекты удаляются сборщиками мусора. Примеры использования ссылок
  4. Тема 4
    • Интерфейсы в Java, статические, абстрактные и методы по умолчанию в интерфейсах. Множественное наследование интерфейсов, переопределение методов по умолчанию в классах, реализовавших множественное наследование интерфейсов Interface.supper.method(). Функциональные интерфейсы
  5. Тема 5
    • Лямбда-выражения, реализация функционального программирования в Java. Определение лямбда-выражения. Описание и передача параметров в функцию, лямбда-выражение. Ссылки на методы и конструкторы классов в лямбда. Интерфейсы Stream и ParallelStream для работы с наборами данных. Развертывание и свертывание потоков, фильтрация, преобразование. Статистика в потоках, расчет выражений, итогов, контрольных сумм
  6. Тема 6
    • Чтение файлов и их представление в виде потоков. Реализация интерфейса Comparator для сложных объектов из ссылок на методы, которые возвращают Comparable-типы. Методы модификации всех элементов списка. Создание потоков случайных чисел в заданном диапазоне. Выполнение атомарных арифметических операций над простыми типами данных. LongAccumulator и функция, определяющая накопление данных в контейнере
    • Перечисления как представитель паттерна Singleton с немедленной инициализацией экземпляров enums, отличия от описания констант в интерфейсах
  7. Тема 7
    • Аннотации, создание собственных аннотаций, определение методов доступа к свойствам аннотаций, область видимости и цель, где будет использована аннотация. Простой пример использования аннотаций с динамической компиляцией класса, его загрузкой в JVM, рефлективным выполнением методов на основе заключенных контрактов
  8. Тема 8
    • Механизмы выполнения скриптовых языков в Java на примере JavaScript (JS).
    • Менеджер скриптовых языков. Выполнение JS функций и методов классов из Java, передача параметров и возврат результатов, имплементация java-интерфейсов в JS
  9. Тема 9
    • Определение потока (нити) в java. Как запускается главный поток приложения. Группы потоков и распределение квантов процессорного времени, приоритеты потоков, демоны. Два способа создания собственного потока и его запуск в работу. Останов потока и выход. Механизмы уведомлений
  10. Тема 10
    • Мониторы объектов как механизмы доступа из потоков к ресурсам приложения
    • Блоки синхронизации, динамические и статические методы с синхронизированным доступом. Объект класса Class и его монитор. Взаимные блокировки в потоках и блокировки ресурсов, объектов
  11. Тема 11
    • Синхронизация данных. Модификатор volatile. Системная синхронизация, методы wait, notify, notifyAll. Механизмы возобновления работы потоков. Модель памяти в потоках happens-before. Патерн синглетон в многопоточной среде, Double-checked locking. Конкурентная работа с коллекциями в потоках, копирование и синхронизация коллекций. Работа с очередями в многопоточных сервисах. Контейнеры pool выполнения потоков, асинхронный возврат результатов из потока. Контейнеры задач ScheduledExecutorService. Паркинг потоков LockSupport
    • Fork-Join FrameWork, основные интерфейсы и классы. Примеры использования на разборе XML-файлов.
    • Интерфейсы и классы для создания пула потоков ComplitableFuture, описание методов и их выполнение с «воровством» у соседей
  12. Тема 12
    • Сетевые взаимодействия. Создание в пуле потоков сетевого слушателя на основе сокета, клиент для сервера. Нагрузочное тестирование сервера, утилита jmeter
  13. Тема 13
    • Механизмы работы с XML-документами, парсирование, маршалирование, JAXB-компиляция
    • Технология JDBC
    • Введение в технологию JEE
    • EJB3, JMS, JPA-ORM, транзакционная модель JTA/JTS
    • WebService та REST-service

Регистрация на ближайший курс

Код курса

NT-Java Adv

Длительность, дней (часов)

5 (40)

Ближайшие даты

по запросу

Цена, грн

В стоимость курса входит

  • LIVE-обучение в удаленном формате проведения курса
  • Видеозапись курса (все действия инструктора + голосовое сопровождение)
  • Подборка материалов в электронном виде
  • Электронный сертификат УЦ
  • Консультации тренера в течении 6-ти месяцев после окончания курса