Java
Теорія
- I. Базовий курс Java
- 1. Java. Загальні відомості
- 2. Типи даних. Літерали. Ключові слова. Змінні
- 3. Операції
- 4. Керуючі оператори
- 4.1. Оператор умовного переходу if
- 4.2. Оператор вибору switch. Вкладені оператори switch
- 4.3. Конструкція if-else-if
- 4.4. Цикли for, while, do..while. Приклади використання. Розв’язки задач з використанням циклів.
- 4.5. Розширений цикл for в стилі foreach. Загальна форма. Приклади. Обробка масивів, колекцій об’єктів ArrayList, LinkedList
- 4.6. Оператори break, continue. Приклади застосування
- 5. Масиви
- 6. Рядки символів
- 7. Класи. Методи в класах
- 7.1. Класи та об’єкти
- 7.1.1. Застосування класів у програмах на Java. Визначення класу та об’єкту класу. Приклади
- 7.1.2. Об’єкти. Створення та збереження об’єктів класів. Оператор new. Області зберігання даних в пам’яті. Використання масивів посилань на об’єкти
- 7.1.3. Область дії об’єктів (scope). Видалення об’єктів. Переваги використання підходу “збору сміття” (garbage collection) для об’єктів
- 7.2. Конструктори
- 7.3. Ініціалізація в класах
- 7.4. Методи у класах
- 7.4.1. Поняття методу. Загальна форма. Параметри методу. Повернення з методу. Оператор return. Повернення об’єкту з методу. Приклади методів
- 7.4.2. Методи. Передача параметрів у методах класу. Передача змінних простих типів та об’єктів у метод в якості параметру
- 7.4.3. Перевантаження методів у класах. Перевантаження конструкторів
- 7.4.4. Аргументи змінної довжини у методах. Перевантаження методів з аргументами змінної довжини. Властивість length
- 7.4.5. Рекурсія
- 7.5. Статичні члени даних класу. Статичні методи. Ключове слово static
- 7.6. Специфікатор final. Незмінні дані, методи, класи. Пусті константи. Статичні незмінні дані
- 7.1. Класи та об’єкти
- 8. Вкладені класи
- 8.1. Вкладені та внутрішні класи. Статичні вкладені класи. Приклади
- 8.2. Створення об’єктів вкладених статичних та нестатичних класів. Конструкції .this та .new
- 8.3. Приклади застосування внутрішніх класів в поєднанні з інтерфейсами. Низхідне та висхідне перетворення. Переваги застосування висхідного перетворення
- 9. Інкапсуляція. Управління доступом. Пакети
- 9.1. Інкапсуляція. Управління доступом в класі. Модифікатори private, protected, public
- 9.2. Пакети. Використання пакетів у Java. Директиви import та package. Компільовані модулі (.java). Проміжні .class файли. Використання стандартних бібліотек Java
- 9.3. Управління доступом до класів у пакетах. Пакетний рівень доступу до класу. Загальнодоступний(public) рівень доступу до класу
- 10. Спадковість у класах. Поліморфізм
- 10.1. Повторне використання коду в класах. Поняття композиції, спадковості, делегування. Ключове слово extends. Приклади
- 10.2. Спадковість. Основні поняття. Суперклас та підклас. Ключове слово extends. Приховування даних в успадкованих класах. Модифікатори доступу private, protected, public
- 10.3. Спадковість. Посилання на об’єкт підкласу. Виклик конструктора суперкласу. Ключове слово super
- 10.4. Перевизначення та перевантаження успадкованих методів. Приклади. Динамічна диспетчеризація методів. Поліморфізм
- 11. Абстрактні класи. Інтерфейси
- 12. Виключення
- 13. Зчислення (перерахунки). Автоупакування. Анотації
- 13.1. Зчислення (enumeration). Загальні поняття. Ключове слово enum. Приклади
- 13.2. Використання зчислень як класів. Приклади оголошення зчислень, що містять конструктори, внутрішні поля, методи
- 13.3. Автоупакування та авторозпакування. Загальні поняття. Використання при присвоєнні (=) та в методах. Приклади
- 13.4. Автоупакування та авторозпакування у виразах та операторі switch. Використання автоупакування та авторозпакування значень для типів boolean та char
- 14. Система вводу/виводу. Робота з файлами
- 14.1. Система вводу/виводу Java. Потік. Байтові потоки. Символьні потоки. Стандартні потоки
- 14.2. Робота з консоллю в Java. Класи InputStreamReader, PrintStream. Створення потоку вводу/виводу зв’язаного з консоллю. Перенаправлення потоків вводу виводу
- 14.3. Робота з файлами в Java. Клас File. Основні методи роботи
- 14.4. Байтові потоки. Класи DataInputStream, DataOutputStream, FileInputStream, FileOutputStream. Приклади використання
- 14.5. Приклади реалізації операцій, які модифікують текстові файли. Класи FileReader, FileOutputStream, PrintStream
- 14.6. Автоматичне закриття файлу. Оператор try з ресурсами. Приклади
- 14.7. Серіалізація об’єктів. Ключове слово transient. Приклади
- 15. Узагальнення
- 16. Додаткові можливості Java
- 17. Лямбда-вирази. Функціональні інтерфейси. Посилання на методи
- 17.1. Лямбда-вирази. Основні поняття. Функціональний інтерфейс. Приклади
- 17.2. Лямбда-вирази для узагальнених функціональних інтерфейсів. Приклади
- 17.3. Передача лямбда-виразу в метод в якості параметру. Приклади
- 17.4. Генерування виключень у лямбда-виразах. Приклади
- 17.5. Доступ до елементів класу з лямбда-виразу. Захоплення змінних у лямбда-виразах. Приклади
- 17.6. Види посилань на методи. Посилання на статичні методи. Посилання на методи екземпляру
- 17.7. Посилання на конструктори класу
- 17.8. Стандартні (наперед визначені) функціональні інтерфейси Java
- 18. Потоки даних. Stream API
- 18.1. Потоки даних. Stream API. Загальна інформація
- 18.2. Поняття кінцевої та проміжної операції
- 18.3. Інтерфейс BaseStream. Приклади використання методів інтерфейсу
- 18.4. Інтерфейс Stream<T>. Проміжні методи filter(), map(), mapToDouble(), mapToInt(), mapToLong(), sorted(). Приклади
- 18.5. Інтерфейс Stream<T>. Кінцеві методи collect(), count(), foreach(), max(), min(), reduce(), toArray(). Приклади
- 19. Потоки виконання (Threads)
- 19.1. Багатозадачність. Потоки виконання. Основні поняття
- 19.2. Засоби Java для роботи з потоками виконання. Клас Thread. Інтерфейс Runnable. Головний потік. Створення дочірнього потоку
- 19.3. Методи класу Thread: getName(), run(), start(), sleep(). Приклади
- 19.4. Методи класу Thread: join(), isAlive(), getPriority(), setPriority(). Приклади
- 19.5. Синхронізація. Монітор. Загальні поняття. Ключове слово synchronized
- 19.6. Взаємодія між потоками. Методи wait(), notify(), notifyAll(). Приклади
- 19.7. Стани потоку виконання. Метод getState(). Приклад
- II. Бібліотека Java
- 1. Пакет java.lang
- 1.1. Пакет java.lang. Загальні відомості. Огляд класів та інтерфейсів
- 1.2. Класи пакету java.lang
- 1.2.5. Клас Character
- 1.2.11. Клас Enum. Методи класу Enum: clone(), compareTo(), getDeclaringClass(), hashCode(), name(), ordinal(), toString()
- 1.2.16. Клас Math
- 2. Пакет java.util
- 2.1. Java Collection Framework
- 2.1.1. Загальні відомості про Java Collection Framework
- 2.1.2. Клас ArrayList
- 2.1.2.1. Клас ArrayList. Динамічний масив. Загальні відомості. Створення масиву
- 2.1.2.2. Методи, що змінюють дані в масиві. Методи add(), addAll(), clear(), remove(), removeAll(), removeIf(), replaceAll(), set(), sort()
- 2.1.2.3. Методи, що визначають інформацію про елементи масиву. Методи get(), contains(), containsAll(), indexOf(), lastIndexOf(), iterator(), listIterator()
- 2.1.2.4. Методи, що визначають загальні характеристики масиву. Методи ensureCapacity(), isEmpty(), size(), trimToSize()
- 2.1.2.5. Методи, що перетворюють масив у цілому. Методи clone(), sublist(), toArray(), retainAll()
- 2.14. Клас Random
- 2.14.1. Клас Random. Генерування випадкових чисел. Конструктори класу. Перелік методів. Методи отримання одиночних випадкових чисел: setSeed(), nextBoolean(), nextDouble(), nextFloat(), nextGaussian(), nextInt(), nextLong()
- 2.14.2. Методи отримання наборів випадкових чисел. Методи doubles(), ints(), longs(), nextBytes()
- 2.1. Java Collection Framework
- 1. Пакет java.lang
⇑
Практика
- 1. Розробка класів
- 2. Stream API
- 3. Розв’язування задач. Приклади
- 4. JUnit
⇑