spinner-it

Курс Java (поглиблений)

Старт навчання
Старт курсу запитуйте в адміністрації
42 год. Тривалість заняття - 3 год
З 18:30 (19:00)
Двічі на тиждень

Опис курсу:

Мета курсу Java Core Advanced Topics - підготувати студентів до вирішення більш серйозних завдань при програмуванні на мові Java. Даний курс буде корисний Java Junior Developers, а також тим, хто вже знайомий з Java Core і хотів би отримати додаткові практичні знання з ряду тем.

 

Ти отримаєш необхідні для роботи в реальних проектах навички і зрозумієш, що лежить в основі багатьох популярних фреймворків і як вони працюють. Ти ознайомишся з архітектурою платформи JVM internals, вивчиш Java Reflection, Java Generics і Java Annotations.

 

Курс Java Advanced - передостанній етап навчання. Після курсу ти зможеш створювати більш складні проекти на мові Java, розробити невеликий IoC-контейнер, писати модульні тести і розуміти, без чого неможливо створювати правильні багатопотокові програми. Ти підготуєшся до курсу Java for Web - останнього етапу твого становлення як повноцінного Java-розробника (Junior Java Developer).

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

  • Програмувати на мові Java на високому рівні
  • Написати свій завантажувач класів
  • Розробити невеликій IoC контейнер (маленький Spring)
  • Писати модульні тести і працювати по TDD
  • Розуміти, що ховається за поняттям Java Memory Model, без чого неможливо писати правильні багатопотокові програми
  • Підготуєшся до курсу Java for Web - останнього етапу твого становлення як повноцінного Java-розробника.

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

  • Утилітні пакети
    • Форматування і час java.util, java.time
    • Файлова система, java.io, Externalizable, java.nio
    • Незмінні об’єкти
    • Серіалізація та десеріалізація даних
  • Java 8. Анонімні функції. Stream API
  • GIT. Контроль версії. Локальні системи контролю версій. Централізовані системи контролю версій. Розподілені системи контролю версій
  • Maven. Автоматизація складання Java-проектів. Декларативний опис проекту. Керування залежностями. Артефакти jar, war, ear. Правила розробки власних фреймворків і бібліотек
    • Ant the Java legacy build tool
    • Maven POM
  • Модульне тестування
    • Правила та принципи
    • TDD
    • Дублери
    • Mockito & PowerMock
  • Java Annotations
  • Java Reflection
  • Advanced Generics
    • Причини поліпшення підсистеми типів
    • Raw Types
    • Wildcards, <? super T>, <? extends T>
    • Type Erasure
    • Отримання інформації про тип generic у runtime
    • Доопрацювання власної колекції
  • Advanced Collections
    • Data Structure Complexity
    • WeakHashMap та інші
    • Сторонні бібліотеки колекцій
  • Advanced Multithreading/Concurrency
    • Низькорівневий API
    • Waiting/blocked/sleeping-потоки; стан потоку “dead”
    • Отримання результатів виконання багатопотокових обчислень. Метод join()
    • Синхронізація: синхронізація методів. Синхронізаційні блоки.
    • Блокування. Взаємодія потоків (Thread Interaction)
    • Синхронізація потоків, взаємодія потоків, шаблон “Producer-Consumer”
    • Особливість реалізації volatile
    • Java Memory Model (JMM)
    • Публікація об'єктів
    • Високорівневий API
    • Бібліотека java.util.concurrent
  • Advanced OOP
    • SOLID (базові принципи об’єктно-орієнтованого програмування та дизайну). Dependency injection (DI) and Inversion of control (IoC)
  • Design Patterns
  • JRE Security, JVM Internals: архітектура платформи, байт-код, ClassLoader, garbage collector, засоби JVM для захищеного виконання коду
    • Sandbox
    • Memory Management
    • Performance Optimization
    • Роль JAAS
  • Destop-додатки: технологія JavaFX
  • Spring
    • Inversion of Control
    • Доступ до даних
    • Керування транзакціями
  • Робота з XML та JSON
    • Потоковий аналіз на основі SAX. Аналіз на основі DOM
    • Створення Java-класів за схемою
    • Валідація. JSON
  • Вступ до SQL
    • DDL & DML
    • Primary Key та Foreign Key
    • SQL Types
    • JOINs
    • Database Indexes
  • JDBC
    • Пул зв'язків
    • Data Access Object
  • Знайомство с Lombok та Log4J
  • Іспит. Захист програмного проекту

Мінімальні вимоги:

  • Розуміння Java Core
  • Наявність власного ноутбуку для занять в аудиторіях

Для освоєння курсу вам знадобиться таке ПЗ:

 

1. Java JDK 11 — програма включає інструменти, корисні для створення і тестування програм, написаних на мові Java і працюючих на платформі Java. Завантажити її можна за посиланням

2. IntelliJ Idea (Community версія) — інтегроване середовище розробки ПО для багатьох мов програмування, зокрема Java, JavaScript, Python. Завантажити можна за посиланням

3. Postgresql DB — система управління базами даних, якою будемо користуватися на курсі. Завантажити можна за посиланням

4. pgAdmin — це кросплатформне ПО, що надає графічний інтерфейс для роботи з базами даних. Завантажити можна за посиланням

5. Apache Maven — це безкоштовний інструмент управління проектами та їх розуміння з відкритим вихідним кодом, який використовується в основному для проектів Java. Завантажити можна за посиланням

6. Java JDK 11 — програма включає інструменти, що дозволяють створювати і тестувати програми, що написані мовою Java і які працюють на платформі Java. Завантажити можна за посиланням

7. DBeaver — це клієнтська програма для управління базами даних. Завантажити можна за посиланням

 

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

У зв'язку з карантином всі наші курси читаються у ONLINE-форматі. Діє знижка 25%. Обирай свій курс

У зв'язку з карантином всі наші курси читаються у ONLINE-форматі. Діє знижка 25%. Обирай свій курс