Курс посвящен изучению основ языка Java и разработке приложений на платформе Java SE. Курс знакомит с концепциями объектно-ориентированного программирования, построением Java приложений.
Опыт в разработке программ с использованием какого-либо современного языка программирования.
1. Краткое описание особенностей языка Java
Изменения Java 7
Особенности архитектуры языка Java
Верификация кода
Загрузчик классов
Виртуальная Java машина (JVM)
2. Инсталляция Java Development Kit (JDK). Написание, компиляция и выполнение простой программы
Инсталляция Java Development Kit (JDK)
Написание простой программы
Компиляция и выполнение программы
3. Лексические структуры языка. Примитивные типы данных. Декларация и инициализация переменных. Основные типы операторов
Идентификаторы, переменные, комментарии
Примитивные типы данных
Декларация переменных
Числовые литералы
Двоичные литералы и групповые разделители в целочисленных литералах
Символьные литералы
Двоичные литералы (Binary Literals)
Строковые литералы
Арифметические операции и выражения
Операции сравнения
Операторы
4. Операторы управления и операторы циклического выполнения
Конструкция if-else
Оператор-переключатель switch
Оператор break
Оператор цикла while
Оператор цикла for
Оператор continue
5. Массивы
Одномерные массивы
Двухмерные массивы
6. Конструирование классов. Концепция пакетов
Принципы Объектно-ориентированное программирования (ООП)
Вызов методов
Конструктор
Пакеты
7. Инкапсуляция. Некоторые особенности методов и конструкторов
Инкапсуляция
Модификаторы доступа
Область видимости переменных
Перегрузка методов
8. Наследование и полиморфизм
Классы и интерфейсы
Базовый синтаксис описания класса
Абстрактные классы
9. Дополнительные особенности работы с классами
Статические переменные и методы
Явная инициализация static атрибутов
Обращение из статических методов к нестатическим атрибутам
Конструирование и инициализация экземпляров класса
Классы, методы и переменные с модификатором final
10. Интерфейсы, внутренние классы
Интерфейсы
Внутренние классы
Статические внутренние классы
Локальные внутренние классы
Анонимные внутренние классы
11. Исключения (Exceptions) и утверждения (Assertions)
Типы исключений
Синтаксис блока обрабатывающего исключения
Создание исключений приложения
Перехват нескольких исключений в одном catch блоке
Перехват и повторное выбрасывание исключения
Утверждения (Assertions)
Синтаксис и примеры утверждений
12. Дженерики, строки, классы оболочки, регулярные выражения
Дженерики. Типизированные (generic) классы и методы.
Некоторые особенности класса java.lang.String
Классы оболочки
Регулярные выражения
13. Коллекции
Классификация коллекций
Особенности использования коллекций в версиях до Java SE5
Итеративный просмотр коллекций
Сортировка и коллекции
14. Ресурсы, интернационализация, форматирование
Как Java представляет символы
Места действия программы с географической точки зрения
Класс java.util.Locale
Класс ResourceBundle
Классы, связанные с локализацией
Форматирование дат
Особенности чтения и записи текстовых файлов с точки зрения их кодировки.
15. Ввод/вывод
Потоковые абстракции и типы потоков
Базовые классы ввода и вывода
Байтовые потоки ввода
Чтение из файла
Класс FilterInputStream и его субклассы
Паттерн "декоратор" в системе классов ввода/вывода
Байтовые потоки вывода
Стандартный вывод
Запись в файл двоичных данных
Запись в текстовый файл
Класс File
16. Введение в функциональное программирование с использованием средств Java 8
Функциональное программирование
Лямбда выражения.
Внутренняя итерация в Java 8
Механизм обработки данных потока.
Ссылки на методы
Типовые операции Stream и интерфейс Predicate
17. Некоторые особенности ввода/вывода с использованием NIO 2 и Stream
Path — основа файлового ввода-вывода
Основные классы файлового ввода-вывода NIO.2
Получение информации о пути
Потоки строк
Поточная работа с директориями
Чтение файлов и запись в файлы
Создание файлов и директорий
Копирование, перемещение и удаление файлов
18. Параллельное выполнение, многопоточность
Параллельная работа
Класс Thread
Планировщик
Объектные блокировки, синхронизация и мониторы
Прерывание работы потока
Приоритеты потоков
Ожидание ресурсов
Взаимные блокировки
19. Некоторые дополнительные особенности параллельного выполнения. Интерфейс Lock, классы ReentrantLock и Condition. Потокобезопасные коллекции.
Класс ReentrantLock
Объекты условий
Поля, имеющие модификатор volatil
Блокировки чтения/записи
Блокирующие очереди
Коллекции безопасные при работе нескольких потоков
Проверка блокировок и таймауты
Группы потоков, класс Executors
Интерфейсы Callable и Future
20. Введение в механизм рефлексии (Reflection)
Загрузка класса по имени
Получение метаинформации
Динамическое изменение значений полей
21. Аннотации
Семантика и синтаксис аннотаций
Правила сохранения
Аннотации маркеры
Встроенные аннотации
1350 BYN
с учетом НДС 20%
под руководством инструктора