Курс Java (продвинутый)
Описание курса
Цель курса 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 — это клиентское приложение для управления базами данных. Скачать можно по ссылке
* Примечание: указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Скидка применяется только к новым заявкам и при условии полной оплаты. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!