1. Введение. Платформа Java и основные принципы. Эволюция. JRE и JSDK и их настройки. Архитектура JVM. Дополнительные библиотеки, стек технологий J2EE и J2ME.
2. Базовые средства программирования Java, типы и операторы, структурные средства. Основы объектного подхода - Абстракция, Инкапсуляция, Типизация. Объекты и классы, взаимоотношения, статический контекст. Класс Object. Основные слои (уровни) приложения.
3. Иерархии классов и объектов. Многоуровневое моделирование и метамодель. Отношения между объектами, отношения между классами. Диаграммы на UML. Принципы ООП: Подстановки Лисков, Инверсии зависимостей, Деметера, Разделения интерфейсов. Базисы для выделения абстракций. Суперклассы и подклассы, наследование. Виртуальный полиморфизм. Перечисления.
4. Внутренние классы и их назначение, исключения, принцип Модульности в ООП, пакеты Java. Многоуровневая архитектура приложений. Разбиение на подсистемы.
5. Средства обобщенного программирования. Generics. Стандартная библиотека Java. Пакет java.lang. Пакет java.util. Коллекции, ассоциативные контейнеры и итераторы.
6. Стандартная библиотека. Ввод-вывод и сетевое программирование. java.io, java.net. Принцип Сохраняемости в ООП, сериализация. Реализация параллельного TCP сервера.
7.Многопоточное программирование. Принцип Параллелизма в ООП. Архитектура многопоточных приложений. Основные проблемы и пути их решения. Синхронизация потоков. Управление потоками. Пул потоков и его реализация. Средства java.util.concurrent. Атомарные операции. Синхронные очереди и замки. ThreadPoolExecutor.
8. Основы объектно-ориентированного дизайна. Доменная модель приложения. Выделение концептуальных классов. Дизайн-модель приложения. Дизайн на основе ответственности абстракций. Принципы GRASP. Назначение ответственности. Информационный эксперт, создатель, зацепление, сплоченность. Контроллеры. Принципы дизайна пакетов: REP, CRP, CCP, ADP, SDP, SAP. Метрики пакетов. "Главная последовательность".
9. Паттерны объектно-ориентированного проектирования. Паттерны создания. Структурные и поведенческие паттерны. MVC
10. Основы системы безопасности Java. Проблемы обеспечения безопасности. Права доступа и политики. Домены безопасности и контроль доступа. Цифровая подпись. Итоговое тестирование.