В данном курсе вы создадите с нуля web-приложение, реализуя разные способы хранения резюме. Проект включает в себя следующее:
- Технологии: Java 8, GitHub/Git, JUnit, Logging, GSON, JAXB, SQL, PostgreSQL, Сервлеты, HTML, JSP, JSTL, Tomcat, Maven и многое другое
- Различные способы реализации хранения резюме:
- в сортированном и не сортированном массиве
- в коллекциях (List, Map)
- в файловой системе:
- с использованием File и Path API
- в стандартной и кастомной сериализации Java
- в формате JSON (Google Gson)
- в формате XML (JAXB)
- в реляционной базе PostgreSQL
- Установку (деплой) web-приложения:
Любое знание стоит воспринимать как подобие семантического дерева: убедитесь в том, что понимаете фундаментальные принципы, то есть ствол и крупные ветки, прежде чем лезть в мелкие листья-детали. Иначе последним не на чем будет держаться
— Илон Маск
- Обзор курса и методики обучения
- Подготовка и настройка рабочего окружения
- Подходы, применяемые при разработке ПО
- Обзор инструментов и технологий, используемых Java-разработчиками
- Введение в язык Java: история создания, JDK, JVM, JRE, JIT-компиляция
- Системы управления версиями. Git
- Домашнее задание
- Типы данных
- Введение в объектно-ориентированное программирование
- Принципы ООП
- Классы и объекты
- Классы-обертки
- Модификаторы доступа
- Конструктор
- Структура памяти java-программы: Heap (куча), Stack (стек)
- Пакеты
- Домашнее задание
- Разбор домашнего задания
- Обзор суперкласса Object
- Связь между equals() и hashCode()
- Статические методы и переменные
- Программирование с помощью интерфейсов
- Абстрактные классы
- Сложность алгоритмов
- Паттерн проектирования Template Method
- Домашнее задание
- Разбор домашнего задания
- Конструктор
- Работа со строками: String, StringBuilder, StringBuffer
- String literal pool
- Исключения (Exceptions)
- Ключевые слова: this, super
- Reflection
- Аннотации
- Введение в модульное тестирование. JUnit
- Домашнее задание
- Разбор домашнего задания
- Коллекций. Иерархия классов
- Списки (List)
- Множества (Set)
- Ассоциативные массивы (Map)
- Введение в Iterator
- Домашнее задание
- Разбор домашнего задания
- Паттерн проектирования Iterator
- Autoboxing и Unboxing
- Вложенные классы
- Внутренние классы
- Локальные классы
- Анонимные классы
- Введение в лямбда-выражения
- Функциональный интерфейс
- Домашнее задание
- Разбор домашнего задания
- Дженерики (Generic)
- Введение в логирование. Log4J, Java Logging API
- Паттерн проектирования Singleton
- Перечисления (Enum)
- Объектная модель
- Домашнее задание
- Разбор домашнего задания
- Классы работы с датами: Date, Calendar, TimeZone
- Дата и время в Java 8+
- File API
- Освобождение ресурсов: try-with-resources
- Домашнее задание
- Разбор домашнего задания
- Обзор пакета java.io
- Классы чтения/записи потоков: InputStream и OutputStream
- Паттерн проектирования Decorator
- Классы чтения/записи символов: Reader и Writer
- Сериализация объектов
- Обзор пакета java.nio
- Введение в Java 8+ Stream API
- Домашнее задание
- Разбор домашнего задания
- Паттерн проектирования Strategy
- Работа с XML (JAXB)
- Работа с JSON (GSON)
- Классы чтения/записи примитивных типов: DataInputStream и DataOutputStream
- Домашнее задание
- Многопоточность
- Закон Мура и Амдала
- Потоки. Синхронизация доступа
- Обзор методов класса Object
- Ленивая инициализация
- Java Memory Model
- Deadlock
- Домашнее задание
- Разбор домашнего задания
- Обзор классов java.util.concurrent
- Синхронизаторы
- ThreadLocal-переменные
- Сравнение с обменом (Compare-and-swap)
- Домашнее задание
- Разбор домашнего задания
- Введение в реляционные базы данных
- Язык SQL
- Обзор NoSQL баз данных
- Установка и настройка СУБД PostgreSQL
- Работа с базами данных из IDEA
- Конфигурирование базы данных и каталога хранения
- Подключение базы данных к проекту
- Обзор JDBC-архитектуры
- Домашнее задание
- Разбор домашнего задания
- Операции соединения таблиц. JOIN
- Транзакции
- Требования к транзакциям. ACID
- Уровни изоляции транзакций в SQL
- Установка и настройка контейнера сервлетов Tomcat
- Домашнее задание
- Разбор домашнего задания
- Введение в HTML
- Основы протокола HTTP
- Настройка web.xml
- Деплой web-приложения в Tomcat
- Сервлеты
- Домашнее задание
- Разбор домашнего задания
- Жизненный цикл сервлета
- Создание динамических страниц. JSP
- Расширенные возможности JSP. JSTL
- Redirect и Forward
- CRUD-операции
- Домашнее задание
- Разбор домашнего задания
- Деплой приложения в облачный сервис Heroku
- Загрузка классов в Java. Classloader
- Домашнее задание