Набор на курс "Java"

Java - это безопасный, переносимый, высокопроизводительный и динамичный язык. Кроме того, его легко освоить любому, кто понимает принципы объектно-ориентированного программирования (ООП). Это самый популярный язык для разработки корпоративных проектов. Java - это основа очень многих видов сетевых приложений. Java может использоваться для создания и веб и Android приложений, игр и корпоративного программного обеспечения. Во многих больших корпорациях мировым стандартом был признан именно Java.
Java работает на всех платформах: Windows, Mac и Linux.
Java - главный язык создания нативных приложений для Android. Этот язык имеет широкую сферу применения: от SIM-карт до сложных навигационных систем и медицинского оборудования. Его можно использовать для искусственного интеллекта, машинного обучения, блокчейна, RSS-каналов и обычных Web-приложений.
Программа:
Тема 1. Введение в язык программирования Java.
- Язык программирования Java.
- Особенности Java.
- Технологии Java: SE, EE, ME, JavaFX, JRE и др. - назначение и состав.
- Установка Java.
Тема 2. Первая программа на Java.
- Структура программы.
- Область подключения внешних пакетов (imports).
- Область написания кода (кратко об объявлении класса, полей, методов, комментарии).
- IDE IntelliJ IDEA (установка, настройка, первая программа в IntelliJ IDEA).
Тема 3. Основы программирования на Java.
- Системы счисления (двоичная, восьмеричная, десятичная, шестнадцатиричная).
- Перевод из одной системы счисления в другую.
- Типы данных и переменные.
- Базовые типы.
- Ссылочные типы.
- Объявление переменных.
- Использование суффиксов.
- Символы и строки.
- Константы.
- Преобразования базовых типов данных.
- Потеря данных при преобразовании.
- Усечение рациональных чисел до целых.
- Преобразования при операциях.
- Операции языка Java.
- Арифметические операции.
- Логические операции над числами.
- Операции сдвига.
- Операции сравнения.
- Операции присваивания.
- Приоритет операций.
- Массивы.
- Одномерные массивы.
- Многомерные массивы.
- Массив массивов
- Работа с массивами и класс Arrays(Копирование массивов, Сортировка).
- Условные конструкции.
- Конструкция if/else.
- Конструкция switch.
- Тернарная операция.
- Циклы.
- Цикл for и foreach.
- Перебор многомерных массивов в цикле.
- Цикл do.
- Цикл while.
- Операторы continue и break.
- Методы.
- Использование методов в программе.
- Передача параметров в методы.
- Перегрузка методов.
- Параметры переменной длины.
- Рекурсивные функции.
- Консольный ввод/вывод в Java.
- Вывод на консоль.
- Консольный ввод.
- Проблема с кириллическими символами.
- Введение в обработку исключений.
- Что такое исключительная ситуация.
- Класс Exception.
- Обработка исключения.
- Обработка нескольких исключений.
- Оператор throw.
Тема 4. Объектно-ориентированное программирование.
- Классы и объекты.
- Создание объекта.
- Инициализаторы.
- Программа с классами.
- Создание классов в IDE Eclipse.
- Пакеты.
- Импорт пакетов и классов.
- Статический импорт.
- Модификаторы доступа (public, package friendly, protected, private) и инкапсуляция.
- Парадигма Инкапсуляция.
- Использование статических членов и модификатора static.
- Использование объектов в качестве параметров методов.
- Использование ключевого слова super в наследовании и полиморфизме.
- Парадигма Наследование.
- Парадигма Полиморфизм.
- Ключевое слово super.
- Запрет наследования.
- Абстрактные классы.
- Иерархия наследования, а также преобразование типов.
- Внутренние классы.
- Определение статических классов, а также внутренние классы.
- Интерфейсы.
- Использование интерфейсов в преобразовании типов.
- Методы по умолчанию.
- Статические методы.
- Дополнительно об интерфейсах.
- Вложенные интерфейсы.
- Механизм обратного вызова и его интерфейсы.
- Перечисления enum.
- Класс Object и его методы.
- Метод toString.
- Метод hashCode.
- Получение типа объекта и метод getClass.
- Метод equals.
- Обобщенные (Generics) типы и методы.
- Наследование классов и обобщение.
- Базовый обобщенный класс.
- Обобщенный класс-наследник.
- Преобразование обобщенных типов.
- Особенности ссылочных типов и их клонирование объектов.
Тема 5. JavaFX.
- Введение в JavaFX. Что такое JavaFX?
- Разработка приложений JavaFX. Общие сведения.
- Настройка и подготовка к работе.
- Создание и запуск проекта JavaFX.
- Проектирования пользовательского интерфейса. Приложение Scene Builder.
- Структурирование приложения. MVC.
- Логика приложений JavaFX.
- Коллекция ObservableList.
- Компонент TableView.
- Создание пользовательских всплывающих диалогов.
- Использование объектов.
- Привязка данных и триггеры.
- Драйверы, соединения, запросы.
- Контроль доступа.
- Транзакции.
- Параллельность в JavaFX.
- Данные приложения. XML.
- Дизайн приложения JavaFX. CSS.
- Использование конструктора сцен в IDE NetBeans.
- Работа с макетами в JavaFX.
- Работа с графом сцены JavaFX.
- Эффекты, анимация и медиакомпоненты JavaFX.
- Создание визуальных эффектов в JavaFX.
Тема 6. Обработка исключений.
- Оператор throws.
- Классы исключений.
- Создание своих классов исключений.
Тема 7. Коллекции.
- Введение в коллекции в Java.
- Интерфейс Collection.
- Класс ArrayList и интерфейс List.
- Класс LinkedList.
- Класс HashSet.
- Класс TreeSet.
- Интерфейсы Comparable и Comporator. Сортировка.
- Очереди и класс ArrayDeque.
- Интерфейс Queue.
- Интерфейс Deque.
- Класс ArrayDeque.
- Отображения и класс HashMap.
- Классы отображений.
- Класс TreeMap.
- Итераторы
Тема 8. Потоки ввода-вывода. Работа с файлами.
- Потоки ввода-вывода.
- Потоки байтов.
- Класс InputStreamКласс OutputStream.
- Класс OutputStream.
- Абстрактные классы Reader и Writer.
- Приемы закрытия потоков.
- Чтение и запись файлов. FileInputStream и FileOutputStream.
- Чтение файлов и класс FileInputStream.
- Запись файлов и класс FileOutputStream.
- Классы ByteArrayInputStream и ByteArrayOutputStream.
- Чтение массива байтов и класс ByteArrayInputStream.
- Запись массива байт и класс ByteArrayOutputStream.
- Буферизуемые потоки. Классы BufferedInputStream и BufferedOuputStream.
- Класс BufferedInputStream.
- Класс BufferedOutputStream.
- Использование классов PrintWriter и PrintStream.
- Классы DataOutputStream и DataInputStream.
- Запись данных и DataOutputStream.
- Считывание данных и DataInputStream.
- Работа с файлами (чтение, а также запись). FileReader и FileWriter.
- Использование класса FileWriter для записи файла.
- Использование класса FileReader для чтения файла.
- Буферизируемые символьные потоки. BufferedWriter и BufferedReader.
- Считывание текста и BufferedReader.
- Записывание текста и BufferedWriter.
- Считывание с консоли в файл.
- Сериализация объектов.
- Интерфейс Serializable.
- Сериализация/Десериализация. Класс ObjectOutputStream.
- Использование класса File. Приемы работа с файлами и каталогами.
- Работа с ZIP-архивами
Тема 9. Работа со строками.
- Введение в строки. Возможности класса String.
- Основные методы класса String.
- Выполнение основных операций при работе со строками.
- Соединение строк (конкатенация).
- Извлечение символов и подстрок.
- Сравнение строк.
- Поиск в строке.
- Замена в строке.
- Обрезка строки.
- Изменение регистра.
- Классы StringBuffer и StringBuilder.
- Получение и установка символов.
- Добавление в строку.
- Удаление символов.
- Обрезка строки.
- Изменение длины.
- Замена в строке.
- Обратный порядок в строке.
- Использование регулярных выражений.
- Класс Matcher.
- Замена в строке.
- Разделение строки на лексемы.
Тема 10. Многопоточное программирование.
- Класс Thread.
- Недостатки при использовании потоков.
- Создание и завершение потоков.
- Наследование от класса Thread.
- Реализация интерфейса Runnable.
- Завершение потока.
- Синхронизация потоков. Оператор synchronized.
- Взаимодействие потоков. Задача «Producer-Consumer».
- Методы wait и notify.
- Блокировки. ReentrantLock.
- Условия в блокировках.
- Семафоры.
- Обмен между потоками. Класс Exchanger.
- Пулл потоков (Thread pool).
- Класс Phaser.
Тема 11. Лямбда-выражения (optional).
- Введение в лямбда-выражения.
- Отложенное выполнение.
- Передача параметров в лямбда-выражение.
- Терминальные лямбда-выражения.
- Лямбды и локальные переменные.
- Блоки кода в лямбда-выражениях.
- Обобщенный функциональный интерфейс.
- Лямбды как параметры методов и ссылки на методы.
- Ссылки на метод как параметры методов.
- Ссылки на конструкторы.
- Встроенные функциональные интерфейсы.
- Predicate.
- BinaryOperator.
- UnaryOperator.
- Function<T,R>.
- Consumer.
- Supplier.
Тема 12. Итоги и перспективы.
- Как эффективно искать работу.
- Установление связей (Нэтворкинг).
- Перспективы карьерного роста.
ТРЕБОВАНИЯ К КАНДИДАТАМ
- базовые навыки программирования с использованием любого объектно-ориентированного языка;
- возможность непрерывно участвовать в процессе обучения и своевременно выполнять все практические задания;
- наличие достаточного количества свободного времени для посещения занятий и для самостоятельной работы;
- возможность выполнять домашние задания;
- English Pre-Intermediate+;
- коммуникабельность.