Целевая аудитория

Начинающие разработчики, которые будут использовать язык разработки приложений  - Java.
Необходимая подготовка: начальные знания операционной системы Windows X.X, или Linux. Основы процедурного и объектно-ориентированного программирования

Программа
  • Основы языка 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. Создание таблиц для отображения данных. Модель данных. Другие классы для поддержки визуальных форм.

    • 16. Поддержка Internet/Intranet коммуникаций (Socket). Пакет java.net.*, пакеты для работы с http протоколом, взаимодействие с REST сервисами