Курс 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, параметри, які визначають розміри областей. Збирання сміття GC, 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)

Найближчі дати

за запитом

Ціна, грн