Опис курсу:

Мета курсу Java Core Advanced Topics - підготувати студентів до вирішення більш серйозних завдань при програмуванні на мові Java. Курс буде корисний Java Junior Developers, а також тим, хто вже знайомий з Java Core і хотів би отримати додаткові практичні знання. Ви отримаєте необхідні для роботи в реальних проектах навички і зрозумієте, що лежить в основі багатьох популярних фреймворків, і як вони працюють. Ви ознайомитеся з архітектурою платформи JVM internals, вивчите Java Reflection, Java Generics і Java Annotations.

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

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

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

  • Утилітні пакети
    • Форматування і час java.util, java.time
    • Файлова система, java.io, Externalizable, java.nio
  • Java 8. Lambda expressions. 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,? exteds T
    • Type Erasure
    • Отримання інформації про generic типі в runtime
    • Доопрацювання власної колекції
  • Advanced Collections
    • Data Structure Complexity
    • WeakHashMap etc
    • Сторонні бібліотеки колекцій
  • Advanced Multithreading\Concurrency
    • Низькорівневе API
    • waiting / blocked / sleeping-потоки, стан потоку dead
    • Отримання результатів виконання багатопоточних обчислень. Метод join ().
    • Синхронізація: синхронізація методів, Синхронізаційні блоки. Блокування. Взаємодія потоків (ThreadInteraction)
    • Синхронізація потоків, взаємодія потоків, шаблон Producer-Consumer
    • Особливість реалізації volatile
    • Java Memory Model (JMM)
    • Публікація об'єктів.
    • Високорівневе API
    • Бібліотека java.util.concurrent
  • Advanced OOP
    • SOLID (basic principles of object-oriented programming and design). Dependency injection (DI) and Inversion of control (IoC)
    • GOF patterns
  • JRE Security, JVM internals: архітектура платформи, байт-код, class loader, garbage collector, кошти JVM для захищеного виконання коду.
    • Sandbox
    • Memory Management
    • Performance Optimization
    • Роль JAAS
  • Desktop-додатки
    • JavaFX runtime
    • Властивості і зв'язування
    • Спостережувані колекції
    • Управління вікнами і сценами
    • Вузли та стилізація
    • Обробка подій
    • Доступні графічні компоненти
    • Concurrency: Worker, Task, Service
    • FXML
  • Spring
    • Inversion of Control
    • Доступ до даних
    • Управління транзакціями
  • Робота з XML і JSON
    • Потоковий аналіз на основі SAX. Аналіз на основі DOM.
    • Генерація Java-класів за схемою
    • Валідація. GSON
  • JDBC
    • Пул зв'язків
    • Data Access Object
  • Іспит\Захист програмного проекту

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

  • Розуміння Java Core
  • Власний ПК

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