Язык программирования Java.
Java_base
Авторский курс.
Форма проведения: очно / дистанционно
Программа курса
Часть 1. Основы.
-----------------------------
1. Введение в Java.
Язык программирования Java.
Первая программа на Java в Windows.
Первая программа в IntelliJ IDEA.
Первая программа в NetBeans.
Первая программа в Eclipse.
2. Основы программирования на Java.
Структура программы.
Переменные и константы.
Типы данных.
Консольный ввод/вывод в Java.
Арифметические операции.
Поразрядные операции.
Условные выражения.
Операции присваивания и приоритет операций.
Преобразования базовых типов данных.
Условные конструкции.
Циклы.
Массивы.
Методы.
Параметры методов.
Оператор return. Результат метода.
Перегрузка методов.
Рекурсивные функции.
Введение в обработку исключений.
3. Классы. Объектно-ориентированное программирование.
Классы и объекты.
Пакеты.
Модификаторы доступа и инкапсуляция.
Статические члены и модификатор static.
Объекты как параметры методов.
Внутренние и вложенные классы.
Наследование.
Абстрактные классы.
Иерархия наследования и преобразование типов.
Интерфейсы.
Интерфейсы в механизме обратного вызова.
Перечисления enum.
Класс Object и его методы.
Обобщения (Generics).
Ограничения обобщений.
Наследование и обобщения.
Ссылочные типы и клонирование объектов.
Записи (Records).
4. Обработка исключений.
Оператор throws.
Классы исключений.
Создание своих классов исключений.
5. Коллекции.
Типы коллекций. Интерфейс Collection.
Класс ArrayList и интерфейс List.
Очереди и класс ArrayDeque.
Класс LinkedList.
Интерфейс Set и класс HashSet.
SortedSet, NavigableSet, TreeSet.
Интерфейсы Comparable и Comporator. Сортировка.
Интерфейс Map и класс HashMap.
Интерфейсы SortedMap и NavigableMap. Класс TreeMap.
Итераторы.
-----------------------------
Часть 2. Для продвинутых.
-----------------------------
1. Потоки ввода-вывода. Работа с файлами.
Потоки ввода-вывода.
Чтение и запись файлов. FileInputStream и FileOutputStream.
Закрытие потоков.
Классы ByteArrayInputStream и ByteArrayOutputStream.
Буферизованные потоки BufferedInputStream и BufferedOutputStream.
Форматируемый вывод. PrintStream и PrintWriter.
Классы DataOutputStream и DataInputStream.
Чтение и запись текстовых файлов.
Буферизация символьных потоков. BufferedReader и BufferedWriter.
Сериализация объектов.
Класс File. Работа с файлами и каталогами.
Работа с ZIP-архивами.
Класс Console.
2. Работа со строками.
Введение в строки. Класс String.
Основные операции со строками.
StringBuffer и StringBuilder.
Регулярные выражения.
3. Лямбда-выражения.
Введение в лямбда-выражения.
Лямбды как параметры и результаты методов.
Встроенные функциональные интерфейсы.
4. Многопоточное программирование.
Класс Thread.
Создание и выполнение потоков.
Завершение и прерывание потока.
Синхронизация потоков. Оператор synchronized.
Взаимодействие потоков. Методы wait и notify.
Семафоры.
Обмен между потоками. Класс Exchanger.
Класс Phaser.
Блокировки. ReentrantLock.
Условия в блокировках.
5. Stream API.
Введение в Stream API.
Создание потока данных.
Фильтрация, перебор элементов и отображение.
Сортировка.
Получение подпотока и объединение потоков.
Методы skip и limit.
Операции сведения.
Метод reduce.
Тип Optional.
Метод collect.
Группировка.
Параллельные потоки.
Параллельные операции над массивами.
6. Модульность.
Создание модуля.
Зависимые модули.
Взаимодействие между модулями.
7. Java и PostgreSQL.
JDBC.
Подключение к базе данных.
Добавление, изменение и удаление данных.
Получение данных.