Выбор темы, ваш номер в журнале по порядку, Номер, Номер +25, Номер +50 и тд.
Введение в Java и платформу
- История возникновения и эволюция языка Java.
- Основные особенности Java как языка программирования.
- Области применения Java и типичные классы Java-приложений.
- Архитектура платформы Java: язык, библиотеки и среда выполнения.
- JDK, JRE и JVM: назначение и взаимосвязь.
- Компиляция Java-программы и понятие байт-кода.
- Выполнение байт-кода в JVM.
- Принцип Write Once, Run Anywhere и платформенная независимость Java.
- JIT-компиляция и интерпретация Java-программ.
- Структура простейшего Java-проекта и жизненный цикл программы.
Синтаксис, типы и управляющие конструкции
-
Структура Java-программы, класс и метод
main. - Идентификаторы, ключевые слова и правила именования в Java.
- Переменные, области видимости и время жизни переменных.
- Примитивные типы данных Java.
- Ссылочные типы данных Java.
- Литералы и константы в Java.
- Арифметические операции и выражения.
- Операции сравнения и логические операции.
- Побитовые операции и операции сдвига.
- Автоматическое и явное преобразование типов.
-
Операторы
if,if-elseи вложенные условия. -
Множественный выбор:
switchи современные switch expressions. -
Циклы
whileиdo-while. -
Циклы
forи enhancedfor. -
Операторы
break,continueи управление выполнением циклов.
Объектно-ориентированное программирование
- Процедурная и объектно-ориентированная модели программирования.
- Понятия класса и объекта в Java.
- Поля и методы объекта.
-
Методы класса и ключевое слово
static. -
Создание объектов и оператор
new. - Конструкторы классов.
- Перегрузка конструкторов.
-
Ключевое слово
this. - Инкапсуляция и управление доступом к состоянию объекта.
-
Модификаторы доступа
private, package-private,protected,public. - Наследование классов в Java.
-
Ключевое слово
super. - Переопределение методов.
- Полиморфизм и динамическое связывание методов.
- Абстрактные классы и абстрактные методы.
- Интерфейсы Java.
- Реализация нескольких интерфейсов одним классом.
-
defaultиstaticметоды интерфейсов. - Композиция и агрегация объектов.
- Наследование и композиция как альтернативные способы повторного использования кода.
Расширенные возможности объектной модели и языка
-
Класс
Objectи его роль в Java. -
Методы
equals()иhashCode(). -
Метод
toString()и представление объектов. -
Ключевое слово
finalдля переменных, методов и классов. -
Перечисления
enum. - Вложенные и внутренние классы.
- Анонимные классы.
- Records как компактное представление классов данных.
- Sealed classes и управление иерархиями наследования.
- Пакеты Java и организация программного проекта.
- Импорт классов и статический импорт.
-
Исключения и иерархия
Throwable. - Checked и unchecked исключения.
-
try,catch,finally,throwиthrows. - Создание собственных классов исключений.
Массивы, строки, обобщения и коллекции
- Одномерные массивы в Java.
- Многомерные и ступенчатые массивы.
- Передача массивов в методы и возврат массивов.
-
Строки и класс
String. -
Неизменяемость объектов
String. -
StringBuilderиStringBuffer. - Обобщения Java: Generics.
- Параметризованные классы и методы.
- Ограничения типов и wildcard в Generics.
- Java Collections Framework: общая архитектура.
-
Интерфейс
Listи классArrayList. -
LinkedListи связанные структуры данных. -
Set,HashSetиTreeSet. -
Map,HashMapиTreeMap. -
Итераторы,
Iterableи способы обхода коллекций.
Функциональные возможности современной Java
-
Сортировка объектов:
ComparableиComparator. - Функциональные интерфейсы в Java.
- Лямбда-выражения.
- Ссылки на методы и конструкторы.
- Stream API: назначение и модель обработки данных.
-
Промежуточные операции Stream API:
filter,map,sorted. - Терминальные операции Stream API.
-
reduceи агрегирование данных. -
Collectorsи формирование коллекций из потоков. -
Optionalи представление отсутствующего значения. - Императивный и функциональный стили программирования в Java.
-
Параллельные потоки
parallelStream.
Ввод-вывод, файлы, сериализация и сеть
- Система потокового ввода-вывода Java.
-
Байтовые потоки
InputStreamиOutputStream. -
Символьные потоки
ReaderиWriter. - Буферизированный ввод-вывод.
- Работа с текстовыми файлами.
- Работа с бинарными файлами.
-
NIO и классы
PathиFiles. - Сериализация и десериализация объектов.
- Сохранение состояния приложения и объектов.
- Работа с датой и временем: Java Date and Time API.
- Регулярные выражения в Java.
- Основы сетевого программирования: сокеты, клиент и сервер.
Многопоточность, JVM и управление памятью
- Процессы и потоки: модель многопоточности Java.
-
Создание потоков:
ThreadиRunnable. - Жизненный цикл и состояния потока.
- Состояния гонки и проблемы совместного доступа к данным.
-
Синхронизация и ключевое слово
synchronized. -
Блокировки и пакет
java.util.concurrent. -
Пулы потоков и
ExecutorService. -
Callable,Futureи получение результата асинхронной операции. -
CompletableFutureи организация асинхронных вычислений. - Модель памяти Java и видимость изменений между потоками.
- Управление памятью JVM, heap и stack.
- Сборка мусора в Java и основные принципы работы Garbage Collector.
Работа с базами данных и persistence
Материалы курса отдельно выделяют работу Java с базами данных, а в практической части — создание клиент-серверных приложений, API и хранение объектов предметной области.
- JDBC и архитектура доступа Java-приложения к базе данных.
- Подключение к СУБД и выполнение SQL-запросов через JDBC.
-
Statement,PreparedStatementи параметризованные запросы. - Транзакции и управление транзакциями в Java.
- ORM и проблема объектно-реляционного отображения.
- JPA: сущности, идентификаторы и отображение классов на таблицы.
- Hibernate как реализация ORM/JPA.
Разработка приложений, Spring и современные серверные технологии
Завершающая часть загруженного учебного пособия посвящена Spring Core, IoC-контейнеру, bean'ам и дальнейшей разработке приложений на Spring.
- Графический интерфейс Java: AWT, Swing и JavaFX.
- Событийная модель Java и обработка пользовательских событий.
- Системы сборки Java-проектов: Maven и Gradle.
- Тестирование Java-программ: JUnit, unit-тесты и организация тестируемого кода.
- Spring Framework: назначение, архитектура, IoC и Dependency Injection.
- Spring Boot, Spring MVC и создание RESTful API.
- Современное серверное Java-приложение: Spring Data JPA, Spring Security, REST, микросервисная архитектура и развертывание.
