- Основы языка Java.
- Почему Java? Краткий обзор Java - история. Первое простейшее приложение.
- Общий обзор современных сред разработки Java. Палитра компонентов, галерея объектов. Управление проектами. Терминальные приложения.
- Пакеты классов. Архивы. Распространение приложений. Файлы манифестов. Правила использования библиотек. Построение документации по библиотекам.
- Грамматика языка Java. Типы данных. Переменные. Операторы и выражения. Строки и массивы. Управляющие конструкции в языке Java-управление ходом выполнения программы.
- Использование UML для разработки моделей классов. Статическое и динамическое представление классов. Ассоциации.
- Объектно-ориентированная концепция языка Java. Введение в классы. Единое дерево иерархии. Объекты. Жизненный цикл объекта в языке Java. Сборщик мусора, проведение завершающих действий. Интерфейсы и Абстракция. Управление доступом к переменным и методам. Наследование и реализация интерфейсов. Модификаторы доступа к элементам класса. Ключевое слово final. Конструкторы и полиморфизм.
- Перечисления и аннотации. Разработка и использование. Создание модели сервера приложений с использованием аннотаций. Отображение классов в Java. Доступ к свойствам, методам, аннотациям.
- Обработка исключительных ситуаций. Оператор catch. Методы с ключевым словом throws. Блок try-finally- обеспечение правильного завершения. Создание собственных подклассов исключений.
- Обзор основных пакетов java. Классы для работы со строками (String, StringBuffer, StringTokenizer). Класс Runtime и System – получение доступа к среде выполнения. Инкапсуляция состояния объекта во время выполнения – класс Class. Построение дерева наследования классов. Класс математических функций. Класс Package.
- Коллекции. Списки класса List. Стеки и класс LinkedList, создание очередей. Множества Set и SortedSet. Ассоциированные списки Map (HashMap, TreeMap, SortedMap, Vector и Enumeration. Правила использования коллекций. Построение стеков и очередей.
- Файловый ввод/вывод, фaйловые объекты (InputStream, OutputStream). Класс File. Работа с выходным потоком с помощью надстройки FilterOutPutStream. Чтение и запись данных. Поддержка архивов jar и zip. Пакет для работы с потоками java.nio.
- Сериализация объектов. Сохранение и восстановление пользовательского интерфейса.
- Многопоточное программирование. Процессы и потоки, контексты. Приоритеты потоков и синхронизация. Класс Thread и доступ к главному потоку. Два способа создания дочернего потока – интерфейс Runnable и класс Thread. Блокировки, ожидание и уведомление, тупики. Группы потоков. Понятие конкурентности и ее реализация в java
- Синхронизированные коллекции, особенности многопоточного использования коллекций и Map. Синхронизированные очереди. Защелки и управление потоками. Разработка конкретных приложений с использованием средств многопоточного программирования.
- Создание пользовательского интерфейса, используя стандартные библиотеки классов. Особенности обработки событий в Java. Модель возникновения и обработки событий. Вложенные и анонимные классы. Менеджеры компоновок. Использование классов графического интерфейса пользователя Abstract Window Toolkit(AWT), Swing , Пакет Swing для формирования пользовательского интерфейса. Работа с основными классами. Класс Table и AbstractTableModel. Создание таблиц для отображения данных. Модель данных. Другие классы для поддержки визуальных форм.
- Поддержка Internet/Intranet коммуникаций (Socket). Пакет java.net.*, пакеты для работы с http протоколом, взаимодействие с REST сервисами.