spinner-it

Продвинутый курс Java

Старт обучения
Дату уточните у администрации
42 час. по 2-3 раза в неделю

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

Цель курса 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. Анонимные функции. 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
  • Наличие собственного ноутбука для занятий в аудиториях

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