Курс NT-Java Adv JAVA, розширені теми SDK 1.8


Після закінчення курсу слухачі зможуть:

 

Аудиторія

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


  1. Тема 1:
    • Коротка історія - від OAK до Java2.
    • Версії SDK і JVM, Еволюція розвитку.Від OOP до функціонального і аспектно-орієнтованого програмування.
  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, статичні, абстрактні і методи за замовчуванням в інтерфейсах. Множинне спадкування інтерфейсів, перевизначення методів за умовчанням в класах, що реалізували множинне спадкування інтерфейсів (Interfece.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

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

за запитом

Ціна, грн