Курс Java Pro в Дніпрі, навчання JAVA програмування з працевлаштуванням | ITEA DNIPRO

Курс Java Pro

Старт навчання
Старт курсу запитуйте в адміністрації
111 год. по 2-3 рази на тиждень

Після курсу Ви зможете:

  • Писати мовою Java різні проєкти
  • Створювати свій завантажувач класів
  • Розробляти невеликі IoC-контейнери (маленький Spring)
  • Писати модульні тести й працювати за TDD
  • Ефективно користуватися англійською для спілкування з клієнтами та колегами
  • Грамотно презентувати себе працедавцеві

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

1. Загальна характеристика мови Java

  • Історія мови Java
  • Байт-код
  • Віртуальна машина Java (JVM)
  • Трансляція, інтерпретація й компіляція
  • JIT-компіляція
  • JDK та його структура
  • Команди JDK: javac, java, appletviewer, jar (en10). Їхнє використання та параметри
  • Пошук та завантаження класів
  • Створення й запуск першого додатка на Java
  • Вихід з програми та завершення її роботи
  • Використання IDE Eclipse/NetBeans/Intellij IDEA для створення й виконання програм

2. Типи даних та основні операції з ними

  • Алфавіт мови
  • Коментарі
  • Ключові слова
  • Типи даних: прості (примітивні) та за посиланням
  • Ідентифікатори, вибір імен ідентифікаторів
  • Змінні й константи
  • Оголошення та ініціалізація змінних
  • Область видимості й час життя змінних
  • Оператори
  • Операції: арифметичні, привласнення, відносні й логічні
  • Перетворення та приведення числових типів
  • Пріоритет операцій
  • Використання круглих дужок

3. Потік управління

  • Складовий оператор (блок)
  • Умовний оператор і його види
  • Оператор switch
  • Цикли: for, while, do while
  • Нескінченні цикли
  • Переривання потоку керування, мітки
  • Оператор goto й причини уникнення його застосування

4. Масиви

  • Оголошення й ініціалізація масивів, зокрема анонімних
  • Лінійні масиви
  • Ітерація за елементами масиву
  • Масиви та привласнення
  • Передавання та повернення масивів до/з методів
  • Копіювання масивів
  • Клас Arrays: заповнення, порівняння елементів і їхнє сортування
  • Пошук у масивах
  • Багатовимірні масиви, «нерівні» масиви
  • Методи: аргументи змінної довжини
  • Параметри командного рядка

5. Рядки

  • Клас String. Незмінні об’єкти
  • Зберігання рядків у пам’яті
  • Основні операції класу String (створення, конкатенація, порівняння, пошук символів і підрядків у рядках та інше). Перетворення простих типів даних
  • Розбивка рядків: клас StringTokenizer. Змінні об’єкти: класи StringBuffer і StringBuilder
  • Основні методи. StringBuffer vs StringBuilder

6. GIT. Контроль версії

  • Локальні системи контролю версій
  • Централізовані системи контролю версій
  • Розподілені системи контролю версій

7. Вступ до об’єктно-орієнтованого програмування. Об’єкти й класи

  • Поля й методи (визначення, синтаксис оголошення)
  • Специфікатори доступу public і private
  • Поля класів: ініціалізація явна та за замовчуванням, специфікатор final і константи
  • Доступ до полів і методів
  • Методи: параметри (посилання та прості типи) і повернені, використання set і get- методів, перезавантаження методів, правила перезавантаження
  • Об’єктна модель. Основні положення: абстрагування, інкапсуляція, модульність, ієрархія
  • Діаграми класів UML
  • Об’єкти та класи. Об’єкти. Визначення (з прикладами). Стан. Поведінка
  • Конструктори: конструктори за замовчуванням, виклик одного конструктора з іншого
  • Блоки ініціалізації
  • Статичні поля й методи: ініціалізація константи, статичні блоки ініціалізації. Використання this для доступу до членів класу
  • Збір сміття та видалення об’єктів

8. Відносини між об’єктами

  • Залежності, їхні різновиди
  • Узагальнення
  • Асоціації
  • Реалізації
  • Зв’язки, їхня множинність

9. Успадкування й поліморфізм

  • Успадкування й поліморфізм як інструмент створення ПЗ. Суперклас і підкласи, відносини узагальнення, успадкування в Java. Виклик конструкторів суперкласів, порядок викликів. Ключове слово super ()
  • Перевизначення методів, правила перевизначення. Успадкування та статичні поля й методи класів. Абстрактні класи та методи: поняття, виклик конструкторів, реалізація методів у субкласах
  • Інтерфейси. «Множина» успадкування. Визначення та реалізація інтерфейсів. Розширення інтерфейсів. Композиція як альтернатива множинного спадкоємства
  • Поліморфізм. Ієрархія успадкування
  • Перетворення та приведення типів. Використання instance of. Відмова від успадкування: термінальні (final) методи та класи. Включення як альтернатива множинному спадкуванню
  • Пакети. Вкладеність пакетів. Повторне використання коду та пакети. Захист доступу
  • Імпорт: класів, статичних методів і полів

10. Клас Object

  • Глобальний суперклас Object
  • Методи equals (), hashCode (), toString (), finalize (), clone () таінші
  • Правилареалізації equals () і hashCode ()
  • Інтерфейс Cloneable і його реалізація
  • Клонування: поверхневе і глибинне

11. Внутрішні класи

  • Синтаксис оголошення
  • Створення об’єктів внутрішніх класів
  • Поля й методи внутрішніх класів
  • Вкладеність внутрішніх класів і доступ до членів зовнішніх класів
  • Посилання this у внутрішньому класі
  • Доступ до полів і методів зовнішнього класу з внутрішнього
  • Внутрішні класи і специфікатор доступу
  • Вкладені інтерфейси
  • Застосування внутрішніх класів
  • Внутрішнілокальнікласи (Method-LocalInnerClasses)
  • Анонімні внутрішні класи
  • Вкладені (внутрішні статичні) класи (static nested classes)
  • Створення примірників
  • Доступ до примірника з внутрішніми класами перерахування
  • Компіляція програм з внутрішніми класами перерахування

12. Перерахування

  • Перерахування як класи. Методи values (), valueof (), name (), ordinal ()
  • Константи, конструктори, методи й поля
  • Перерахування і конструкція switch. Імпорт членів перерахувань

13. Робота з базами даних

  • Основи побудови реляційних баз даних
  • SQL
  • Нормальніформи. Запити SELECT, INSERT, UPDATE, DELETE
  • JDBC
  • Driver, Connection, Statement, ResultSet, PrepareStatement

14. Обробка помилок і винятки

  • Підходи до обробки помилок часу виконання
  • Поняття виключення і виняткової ситуації
  • Ієрархія класів винятків у Java
  • Контрольовані (що перевіряються) і неконтрольовані (не перевіряються) винятки
  • Генерація виняткової ситуації й оператор throws
  • Оголошення контрольованих винятків, ключове слово throws
  • Throws і перезавантаження методів
  • Перехоплення винятків
  • Перехоплення «усіх» винятків
  • Обробка винятків
  • Повторна генерація винятків
  • Блок finally: звільнення ресурсів
  • Створення власної ієрархії винятків
  • Реєстрація помилок, логування: логери, рівень логер, рівень повідомлень, обробники (об’єкти підкласу java.util.logging.Handler)
  • Приклад

15. Система введення-виведення

  • Ієрархія класів потокового введення-виведення
  • Потоки введення/виведення, механізм роботи з потоками, ієрархія потокового введення-виведення
  • Субкласи FilterOutputStream і FilterInputStream
  • Байтові потоки
  • Символьні потоки
  • Клас File. Клас RandomAccessFile
  • Серіалізація й десеріалізація об’єктів: поняття, призначення, реалізація
  • Приклад

16. Desktop-додатки

  • SWING, AWT. Приклад простого додатка з GUI
  • Обробка подій

17. Класи колекцій

  • Поняття абстрактного типу даних (АТД)
  • Структури даних: списки, стеки, множини, дерева, мапи
  • Обхід колекцій: інтерфейси Iterator і ListIterator, цикл «foreach»
  • Компаратори
  • Клас Collections: пошук і сортування елементів, заповнення, синхронізація уявлення, незмінні уявлення тощо

18. Знайомство з XML

  • Поняття формальної коректності та допустимості
  • Парсинг, зберігання стану об’єктів
  • Приклади

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

  • Поняття потоку. Особливості паралельного виконання
  • Потоки-демони
  • Пріоритети потоків. Метод yield ()
  • Стан потоку: створення потоків, -runnable і -runninig-потоки

20. Класи BigInteger і BigDecimal. Основні операції

  • Документування коду
  • Включення коментарів
  • Документування пакетів
  • Дескриптори загального призначення
  • Коментарі до класів, методам і полям
  • Використання javadoc

21. Універсальні типи

  • Параметризовані типи: класи інтерфейси. Параметри типу
  • Обмеження накладені на параметризовані типи: прості типи, інстанціювання, суперклас, виняток
  • Параметризовані типи і JVM

22. Утилітні пакети

  • Форматування і час java.util, java.time
  • Файлова система, java.io, Externalizable, java.nio
  • Незмінні об’єкти
  • Серіалізація та десеріалізація даних

23. Java 8. Анонімні функції. Stream API


24. Maven. Автоматизація складання Java-проектів

  • Декларативний опис проекту
  • Керування залежностями
  • Артефакти jar, war, ear
  • Правила розробки власних фреймворків і бібліотек
  • Ant the Java legacy build tool
  • Maven POM

25. Модульне тестування

  • Правила та принципи
  • TDD
  • Дублери
  • Mockito & PowerMock

26. Java Annotations


27. Java Reflection


28. Advanced Generics

  • Причини поліпшення підсистеми типів
  • Raw Types
  • Wildcards, <? super T>, <? extends T>
  • Type Erasure
  • Отримання інформації про тип generic у runtime
  • Доопрацювання власної колекції

29. Advanced Collections

  • Data Structure Complexity
  • WeakHashMap та інші
  • Сторонні бібліотеки колекцій

30. Advanced Multithreading / Concurrency

  • Низькорівневий API
  • Waiting/blocked/sleeping-потоки; стан потоку “dead”
  • Отримання результатів виконання багатопотокових обчислень. Метод join()
  • Синхронізація: синхронізація методів. Синхронізаційні блоки.
  • Блокування. Взаємодія потоків (Thread Interaction)
  • Синхронізація потоків, взаємодія потоків, шаблон “Producer-Consumer”
  • Особливість реалізації volatile
  • Java Memory Model (JMM)
  • Публікація об’єктів
  • Високорівневий API
  • Бібліотека java.util.concurrent

31. Advanced OOP

  • SOLID (базові принципи об’єктно-орієнтованого програмування та дизайну)
  • Dependency injection (DI) and Inversion of control (IoC)

32. Design Patterns


33. JRE Security, JVM Internals

  • Платформы, архитектура, байт-код
  • ClassLoader, garbage collector
  • Средства JVM для защищенного выполнения кода
  • Sandbox
  • Memory Management
  • Performance Optimization
  • Роль JAAS

34. Desktop-додатки: технологія JavaFX


35. Spring

  • Inversion of Control
  • Доступ до даних
  • Керування транзакціями

36. Робота з XML і JSON

  • Потоковий аналіз на основі SAX. Аналіз на основі DOM
  • Створення Java-класів за схемою
  • Валідація. JSON

37. Вступ у SQL

  • DDL & DML
  • Primary Key та Foreign Key
  • SQL Types
  • JOINs
  • Database Indexes

38. JDBC

  • Пул зв’язків
  • Data Access Object

39. Знайомство с Lombok та Log4J


40. Іспит. Захист програмного проекту


41. Як скласти резюме і пройти співбесіду

  • Структура резюме
  • FAQ
  • Як вести себе на співбесіді
  • Основні помилки на співбесіді
  • Урок англійської мови №1
  • Урок англійської мови №2
  • Урок пошуку роботи

* Примітка: зазначені знижки не сумуються з іншими діючими акціями та спеціальними пропозиціями. Знижка застосовується тільки до нових заявок та при умові повної оплати курсу. Якщо у Вас виникли питання, звертайтеся за консультацією до наших менеджерів!

spinner-it

Курс на IT — повний вперед! Дізнатись актуальний розклад