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 Advanced — предпоследний этап обучения. После курса ты сможешь создавать более сложные проекты на языке Java, разработать небольшой IoC-контейнер, писать модульные тесты и понимать, без чего невозможно создавать правильные многопоточные приложения. Ты подготовишься к курсу Java Web — последнему этапу твоего становления как полноценного Java-разработчика (Junior Java Developer).

После курса вы сможете:

  • Программировать на языке Java на высоком уровне
  • Написать свой загрузчик классов
  • Разработать небольшой IoC-контейнер (маленький Spring)
  • Писать модульные тесты и работать по TDD
  • Понимать, что скрывается за понятием Java Memory Model, без чего невозможно писать правильные многопоточные приложения
  • Подготовишься к курсу Java 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
  • Desktop-приложения: технология 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. DBeaver — это клиентское приложение для управления базами данных. Скачать можно по ссылке

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