Эволюция методологий программирования. Парадигмы программирования Типизация.
- Правила преобразования типов. instanceof и ClassCastException.
- Класс Class.
- Класс Object.
Виртуальная машина.
- Структура программ.
- Типы переменных в Java.
- Принципы работы ClassLoader
Исключения.
- Обработка исключительных ситуаций.
- Перегрузка операторов.
Программирование распределенных приложений.
- Средства поддержки параллелизма.
- Активные и пассивные объекты.
- Использование Thread и Runnable.
- Пул потоков, назначение и принципы.
Объект с точки зрения ООП.
- Взаимоотношения между объектами.
- Идентичность и жизненный цикл объектов.
- Состояние. Поведение.
Основные принципы объектного подхода.
- Абстрагирование
- Иерархия.
- Инкапсуляция.
- Модульность
- Типизация.
Классы.
- Средства абстракции Java.
- Интерфейсы и абстрактные классы.
- Перечисления
- Структура класса.
- Статические члены.
- Абстрактные классы и интерфейсы.
- Иерархии классов. Зависимость.
- Представление иерархических отношений.
- Наследование.
- Отношения между классами. Ассоциация и агрегация.
- Принцип подстановки Лисковой. Принцип разделения интерфейсов.
- Природа классов. Метамодель. Инстанцирование.
- Средства UML для построения диаграмм классов.
- Внутренние и вложенные классы. Локальные и анонимные классы.
- Статический и динамический контекст.
- Средства инкапсуляции Java. Поддержка модульности. Пакеты.
- Агрегация и зависимость от времени жизни.
- Реализация отношений клиент-сервер.
Стандартные контейнеры.
Родовые компоненты Java, отличия от шаблонов C++, ограничения на параметры-типы.
Система ввода-вывода, пакет java.io, пакет java.net. Сохраняемость. Serializable и Externalizable. Версионность классов.
Графическая подсистема.
- Основы AWT, Applet, Swing components.
- Событийная модель.
Модель безопасности Java. Policy, Permissions, AccessController.