Модуль 1. Алгоритми. |
1.1 |
Опрацювання текстових даних на основі технології regex. Класи Pattern, Mattcher, Scanner. |
1.2 |
Серіалізація файлів. Інтерфейси Serializable та Externalizable. Особливості композиції та наслідування при серіалізації. |
Модуль 2. Контейнери даних. Технологія generics |
2.1 |
Інтерфейси Set, Queue. Класи TreeSet, PriorityQueue, Dequeue. |
2.2 |
Інтерфейс Мар. Принципи побудови hash-таблиць. Клас HashMap. |
2.3 |
Методи класу Collections. Класи Vector, HashTable, Stack. |
2.4 |
Побудова та використання generic-класів та generic-методів. |
2.5 |
Особливості поліморфізму при використанні generic-колекцій. |
Модуль 3. Технології опрацювання |
3.1 |
Багатопотокове програмування |
3.1.1 |
Основи створення та використання потоків. Клас Thread. Інтерфейси Runnable, Callable, Executor, ExecutorService. |
3.1.2 |
Основи синхронізації потоків. Ключове слово synchronized. Синхронізація статичних методів |
3.1.3 |
Реалізація синхронізації на основі фреймворку Fork-Join. |
3.1.4 |
Реалізація синхронізації на основі ресурсів пакетів java.util.concurrent, java.util.concurrent.atomic, java.util.concurrent.locks. |
3.1.5 |
Взаємодія потоків. Методи wait, notify класу Object. Поняття взаємного блокування (deadlock), запобігання deadlock, поняття coupling. |
3.2 |
Фреймворк потоків Stream API |
3.2.1 |
Проміжні та термінальні методи інтерфейсу Stream для формування та опрацювання потоків. Клас Optional. |
3.2.2 |
Особливості технології потокового зведення. Метод reduce. |
3.2.3 |
Методи класу Collectors. |
3.2.4 |
Розпаралелювання потоків. Порівняльний аналіз послідовних та паралельних потоків, визначення доцільності розпаралелювання потоків. |
3.2.5 |
Використання потоків для роботи з файлами. |