Описание курса:

Цель курса 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
  • Модульное тестирование
    • JUnit. Правила и принципы
    • 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
    • JAXP. Потоковый анализ на основе SAX. Анализ на основе DOM
    • JAXB. Генерация Java-классов по схеме
    • JSON. Валидация
  • JDBC
    • Пул соединений
    • Data Access Object
  • Экзамен\Защита программного проекта

Минимальные требования:

  • Понимание Java Core
  • Наличие собственного ноутбука для занятий в аудиториях

* Указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!