Курс: JAVA: Расширенные темы

Курс: JAVA: Расширенные темы

Курс: JAVA: Расширенные темы


Продолжительность курса: 40 ак. ч.

Описание курса:
Java в настоящее время – стандарт для разработки коммерческих приложений среднего и большого масштаба. Это зрелая, устоявшаяся, но в то же время быстро прогрессирующая технология. Ваши вложения в технологию Java многократно окупятся за счет гибкости, обилия качественных и бесплатных библиотек и очень многочисленного сообщества разработчиков.
Эффективность применения Java в значительной степени зависит от умения использовать ее многочисленные инструменты и библиотеки, в противном случае команда разработчиков будет “изобретать велосипед”, который потом трудно изучать и поддерживать. Библиотеки Java очень обширны, постоянно совершенствуются и дополняются

Аудитория:
Слушатели, владеющие языком Java и желающие углубить свои знания и изучить различные аспекты стандартной библиотеки Java

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

Программа курса:
Модуль 1. Краткая история - от OAK к Java2.Версии SDK и JVM, Эволюция развития. От OOP к функциональному и аспектно-ориентированному программированию

Модуль 2. Запуск JVM, порядок загрузки классов, приложения JSE и JEE - всему платформа - многопоточное программирование

Модуль 3. Распределение памяти, работающей JVM. Heap, Metaspace, Stack - параметры определяющие размеры областей. Сборка мусора (GC) - 4 основных
алгоритма сборки , параметры управления алгоритмами GC

Модуль 4. JMX интерфейс. Утилиты мониторинга JVM (JVisualVM, JMC) - сравнение и использование
• Терминальные утилиты наблюдения за JVM (jmap, jstack...)
• Тестовые задачи и наблюдение за распределением объектов в куче
• Профилирование приложения средствами Java и утилитами мониторинга

Модуль 5. Загрузка классов в JVM, назначение класса Class, объект класса Class с описанием структуры классов, загруженных в JVM, выполнение статического блока класса

Модуль 6. Типы ссылок в java. Жесткие , мягкие, слабые, фантомные ссылки. Экономия оперативной памяти, создание кэшей объектов, когда удаляются объекты сборщиками мусора. Примеры использования ссылок. Мониторинг JVM. Утилиты jstack, jinfo, jmap, jconsole. Куда делись JMC и JvisualVM

Модуль 7. Интерфейсы в Java, статические, абстрактные и методы по умолчанию в интерфейсах. Множественное наследование интерфейсов, переопределение методов по умолчанию в классах, реализовавших множественное наследование интерфейсов (Interfece.supper.method()). Функциональные интерфейсы

Модуль 8. Лямбда выражения, реализация функционального программирования в Java. Определение лямбда выражения. Описание и передача параметров в функцию (лямбда выражение). Ссылки на методы и конструкторы классов в лямбда. Интерфейсы Stream и ParallelStream для работы с наборами данных. Развертывание и свертывание потоков, фильтрация, преобразование. Статистика в потоках, расчет выражений, итогов, контрольных сумм

Модуль 9. Чтение файлов и их представление в виде потоков. Реализация интерфейса Comparator для сложных объектов из ссылок на методы, которые возвращают Comparable типы. Методы модификации всех элементов списка. Создание потоков случайных чисел в заданом диапазоне. Выполнение атомарных арифметических операций над простыми типами данных . LongAccumulator и функция, определяющая накопление данных в контейнере 

Модуль 10. Перечисления - как представитель патерна Singleton с немедленной инициализацией экземпляров enums, отличия от описания констант в интерфейсах

Модуль 11. Аннотации, создание собственных аннотаций, определение методов доступа к свойствам аннотаций, область видимости и цель где будет использована аннотация. Простой пример использования аннотаций с динамической компиляцией класса , загрузкой последнего в JVM, рефлективным выполнением методов на основе заключенных контрактов

Модуль 12. Определение потока (нити) в java. Как запускается главный поток приложения. Группы потоков и распределение квантов процессорного времени, приоритеты потоков, демоны. Два способа создания собственного потока и его запуск в работу. Останов потока и выход. Механизмы уведомлений

Модуль 13. Мониторы объектов - как механизмы доступа из потоков к ресурсам приложения. Блоки синхронизации, динамические и статические методы с синхронизированным доступом. Объект класса Class и его монитор. Взаимные блокировки в потоках и блокировки ресурсов (объектов)

Модуль 14. Синхронизация данных. Модификатор volatile. Системная синхронизация - методы wait, notify, notifyAll. Механизмы возобновления работы потоков. Модель памяти в потоках -happens-before. Патерн синглетон в многопоточной среде - Double-checked locking. Конкурентная работа с коллекциями в потоках, копирование и синхронизация коллекций . Работа с очередями в многопоточных сервисах. Контейнеры (pool) выполнения потоков, асинхронный возврат результатов из потока. Контейнеры задач (ScheduledExecutorService). Паркинг потоков - LockSupport

Модуль 15. Fork-Join FrameWork - основные интерфейсы и классы. Примеры использования на разборе XML файлов. Интерфейсы и классы для создания пула потоков ComplitableFuture, описание методов и их выполнение с «воровством» у соседей

Модуль 16. Сетевые взаимодействия. Создание в пуле потоков сетевого слушателя на основе сокета, клиент для сервера. Нагрузочное тестирование сервера - утилита jmeter

Модуль 17. Дополнительные вопросы - по согласованию со слушателями:
• Механизмы работы с XML документами - парсирование, маршалирование, JAXB компиляция
• Технология JDBC
• Введение в технологию JEE
• EJB3, JMS, JPA-ORM, транзакционная модель JTA/JTS
• WebService, REST service Записаться на курс

Характеристики курса

  • Начало: Ведется набор
  • Вендор: Java
  • Код курса: JSE
  • Город: Екатеринбург, Пермь, Челябинск, Самара, Ижевск,
  • Направление: Java
  • Академических часов: 40
  • Количество мест: 8
  • Очно: 42900 ₽
  • Дистанционно: 40900 ₽
Записаться на курс

Курсы повышения квалификации
и профессиональной переподготовки


График работы:
Мы отвечаем на звонки и письма в будние дни с 7:00 до 16:00 по Мск

Юридический адрес организации:
614010, г. Пермь, ул. Клары Цеткин, д. 14, офис 32

8 800 (600)-66-16

learning@eshift.ru