Модуль 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 | Використання потоків для роботи з файлами. |
Програма курсу