Курс Програмування на мові Java

  • Online
  • Для начинающих
  • Java
Образовательный центр: Code Space
Формат:Курс
Язык обучения:Ukrainian
Длительность обучения:220 часов
Начало курса:Дата формируется
Стоимость обучения:18 000 UAH за курс

Перша частина курсу є базовою з основ мови програмування Java. У другій частині курсу ми заглибимося у вивчення Java Core та технологічного стеку Java SE.

Програма курсу

Введення в програмування Java

  • Віртуальна машина, байт-код, JRE
  • Платформи та технології
  • Інструменти та утиліти JDK
  • Інсталяція JDK
  • Середовища розробки (IDE). Встановлення Intelliji IDEA
  • Структура простої консольної програми
  • Створення та виконання програми засобами Intelliji IDEA
  • Введення-виведення рядків
  • Положення за кодом Java

Цілі типи даних та арифметичні операції над ними

  • Поняття типу даних. Огляд типів даних у Java
  • Відмінність між примітивними та об'єктними типами
  • Подання знакових і беззнакових цілих чисел. Системи числення
  • Операції над цілими числами
  • Цілочисленні типи даних
  • Поняття змінної. Ідентифікатори
  • Поняття цілого літералу. Цілочисленні літерали

Речові типи даних та операції над ними

  • Подання знакових та беззнакових дійсних чисел
  • Речові типи даних
  • Речовий літерал
  • Операції над речовими змінними
  • Пріоритет операцій
  • Приведення типів даних

Оператори, що керують потоком виконання програми

  • Концепція блоку коду. Локальні змінні та область їх дії
  • Оголошення змінної як константи
  • Основний оператор if-else
  • Логічний тип даних (boolean). Логічні операції
  • Інші форми оператора if-else
  • Тернарна операція
  • Оператор switch. Ключові слова case та default
  • Оператори while, do-while
  • Оператори переходу break та continue. Мітки

Символьний та рядковий типи даних, операції над ними

  • Символьний тип даних (char)
  • Рядковий тип даних (String)
  • Основні операції з рядками
  • Незмінність рядків

Методи. Опис та виклик

  • Опис методу
  • Способи передачі даних метод
  • Виклик (звернення) методу
  • Поняття про навантаження методів
  • final-аргументи методів

Масиви

  • Опис одновимірного масиву. Поле length
  • Звернення до елементу масиву
  • Цикли for та for-each
  • Опис багатовимірних масивів
  • Рвані багатовимірні масиви
  • Клас Arrays
  • Типові операції з масивами
    • порівняння
    • пошук елемента
    • сортування

Типи даних та операції над ними

  • Примітивні типи даних, опис змінних
  • Операції над примітивними типами даних
  • Рядковий тип даних (String)
  • Основні операції з рядками

Методи. Опис та виклик

  • Опис методу
  • Способи передачі даних метод
  • Виклик (звернення) методу
  • Поняття про навантаження методів
  • final-аргументи методів

Масиви. Опис та обробка

  • Опис одновимірного масиву та робота з ним
  • Опис багатовимірного масиву та робота з ним
  • Рвані багатовимірні масиви
  • Операції з масивами: порівняння, пошук елемента, сортування. Клас Arrays

Використання принципів ООП: інкапсуляція

  • Опис класів. Поля та методи
  • Модифікатори доступу
  • Оголошення об'єктів. Оператор new
  • Конструктори. Конструктори з параметрами
  • Виклик одного конструктора з іншого
  • Літерал null
  • Ключове слово this
  • Знищення об'єктів

Секції ініціалізації та пакети

  • Специфікатор final
  • Специфікатор static
  • Способи ініціалізації полів класу
  • Статичні секції ініціалізації
  • Логічні секції ініціалізації
  • Порядок виконання секцій ініціалізації
  • Java пакети. Організація пакетів
  • Створення пакета
  • Імпорт пакетів
  • Запаковані архіви. Утиліта jar

Використання принципів ООП: успадкування та поліморфізм

  • Основи наслідування. Доступ до членів класу та успадкування
  • Ключове слово super
  • Створення багаторівневої ієрархії
  • Перевизначення методів
  • Заміщення методів, затінення полів
  • Ланцюжки конструкторів
  • Поліморфізм. Раннє та пізнє зв'язування
  • Перетворення та приведення типів
  • Оператор встановлення
  • Клас Object та його методи

Абстрактні класи та інтерфейси

  • Абстрактні класи
  • Абстрактні методи
  • Інтерфейси. Визначення інтерфейсів
  • Реалізація інтерфейсів
  • Використання інтерфейсів
  • Функціональні інтерфейси
  • Статичні методи та методи за змовчуванням в інтерфейсах

Перерахування та класи-обгортки

  • Основні поняття про перерахування
  • Методи values() та valuesOf()
  • Клас Enum
  • Класи-оьгортки для примітивних типів даних
  • Пул об'єктних оболонок
  • Автоупаковка та методи
  • Автоупаковка та розпакування у виразах
  • Автоупаковка та розпакування логічних та символьних значень

Винятки

  • Поняття винятку. Типи винятків
  • Використання блоків try та catch
  • Множинні оператори catch
  • Вкладені оператори try
  • Контрольовані та неконтрольовані винятки
  • Стек обробників. Поширення неперехоплених винятків
  • Інструкції throws та throw
  • Ключове слово finally. Обробник завершення
  • Винятки, створювані програмістом

Вкладені класи

  • Поняття та класифікація вкладених класів
  • Створення екземплярів статичних та не статичних вкладених класів
  • Доступ до членів об'ємного класу
  • Вкладені класи та віртуальна машина
  • Локальні внутрішні класи
  • Анонімні внутрішні класи
  • Застосування анонімних класів з прикладу сортування. Інтерфейс компаратора
  • Внутрішні класи та множинне спадкування

Узагальнення (generics)

  • Оголошення та використання узагальнених класів
  • Оголошення та використання узагальнених методів
  • Обмежені generics
  • Узагальнення та віртуальна машина
  • Обмеження використання generics
  • Підстановочні типи (wildcards). Ключові слова extends i super в типах підстановки.
  • Необмежені підстановки

Колекції

  • Загальне поняття про фреймворк колекцій. Інтерфейс Collection
  • Ітератори. Інтерфейси Iterable та Iterator
  • Інтерфейс List. Класи ArrayList та LinkedList, їх порівняльна характеристика
  • Інтерфейс Queue та Deque. Класи, що реалізують ці інтерфейси
  • Інтерфейс Set. Класи TreeSet та HashSet
  • Інтерфейс Map
  • Інтерфейс MapEntry

Сервісні класи

  • Клас Math
  • Довга арифметика
  • Випадкові числа
  • Клас System
  • Клас Properties
  • Форматування та локалі
  • Дата та час
  • Числа та коррень
  • Клас Runtime

Багатопоточність

  • Поняття багатопоточності. Способи створення потоків
  • Прості методи класу Thread: start(), join(), sleep(), yield()
  • Стан потоків
  • Планувальник потоків. Пріоритети
  • Переривання потоку. Метод interrupt()
  • Потоки-демони
  • Пул потоків
  • Синхронізація потоків. Модифікатор volatile. Синхронізовані методи та блоки
  • Клас ReentrantLock
  • Атомарні змінні
  • Методи wait(), notify(), notifyAll()
  • Тупики
  • Основні синхронізатори. Класи Semaphore, CountDownLatch
  • Синхронізація колекцій
  • Fork-Join Framework

Потоки введення-виведення. Робота з файлами

  • Поняття потоку введення-виводу
  • Байтові та символьні потоки
  • Основні класи потоків
  • Клас RandomAccessFile
  • Принципи обробки помилок введення-виведення
  • Блок try з автоматичним керуванням ресурсами
  • Клас File. Операції із файлами

Серіалізація

  • Поняття серіалізації
  • Серіалізація складних об'єктів
  • Серіалізація та успадкування
  • Модифікатор transient
  • Нестандартна серіалізація
  • Інтерфейс Externizable

Завантаження класів. Рефлексія

  • Процес завантаження класів
  • Основні завантажувачі
  • Ієрархія завантажувачів класів
  • Основні можливості Reflection
  • Клас Class
  • Отримання інформації про клас
  • Динамічне завантаження класів та створення екземплярів
  • Використання рефлексії для отримання вказників на методи
  • Динамічний виклик методів
  • Використання рефлексії для доступу до приватних членів

Анотації

  • Поняття інструкції
  • Зумовлені інструкції Java SE
  • Створення власних анотацій

Нові функції Java 8

  • Лямбда-вирази
  • Посилання на метод, оператор
  • Потоки (Streams)
  • Новий Date/Time API

Основні прийоми проєктування

  • Основні принципи проєктування (SOLID)
  • Відносини is_a та has_a
  • Спадкування, агрегація, композиція, делегування
  • Основні показники якості коду: coupling, cohesion
  • Угоди JavaBeansNaming
  • Архітектурний шаблон MVC
  • Поняття про патерни проєктування
  • Патерни Singleton, Builder, Strategy, Decorator, Observer, Factory

Інструмент складання Java проєкту

  • Основи Maven
  • Основи тестування. Фреймворк JUnit 4
  • Інструкції, що підтримуються в JUnit 4
  • Клас Assert
  • Створення тестових випадків

Системи логування

  • Призначення логування
  • Основні компоненти фреймворки Log4j
  • Компонент "Logger" та його рівні
  • Компонент "Appender" та особливості його використання
  • Компонент Layout та його застосування
  • Конфігурування системи логування

Проєкт

  • Видача та пояснення завдань
  • Консультування
  • Захист проєкту

Попередні вимоги

  • Впевнений користувач ПК
  • Англійська мова - на рівні читання та розуміння базових технічних тестів

Особливості курсу

  • Зручний формат
  • Відмінний тренер
  • Записи уроків
  • Можлива оплата частинами
  • Якісна програма
  • Високі шанси працевлаштування після проходження курсу

Викладачі курсу

Любов Іванова - External Trainer at EPAM Systems

Категории курса

Читайте нас в Telegram, чтобы не пропустить анонсы новых курсов.

Похожие курсы

Учебный центр
Mate academy
Формат
Online
Начало обучения
Будь-який момент
Длительность
8 месяцев
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
54 740 UAH за курс
Учебный центр
Okten School
Формат
Online
Начало обучения
Будь-який момент
Длительность
8 месяцев
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
уточняйте
Учебный центр
Optima Academy
Формат
Online
Начало обучения
Будь-який момент
Длительность
6 месяцев
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
3 400 UAH за месяц
Учебный центр
Учебный центр «Данко»
Формат
Online
Начало обучения
Дата формується
Длительность
30 часов
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
13 500 UAH за курс