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

  • Разработчики

  • ИТ специалисты

  • Все, кто хочет углубить знания Java и увлекается программированием

Программа
  • Многопоточное программирование. Введение

    • Что такое многопоточное приложение?

    • Минусы многопоточный программ.

    • Инструменты Java для реализации многопоточности.

    • Класс Thread.

    • Использование интерфейса Runnable. Почему не рекомендуется применять наследование?

  • Многопоточное программирование. Реализация

    • Создание потоков.

    • Метод sleep().

    • Ожидание завершения потоков, применение таймаутов.

    • Монитор как средство синхронизации потоков.

  • Многопоточное программирование. Распараллеливание задач

    • Использование потоков для ускорения расчётных алгоритмов.

    • Многопоточные рекурсии.

  • Многопоточное программирование. Современные средства по управлению потоками

    • «Атомарные» типы даных.

    • Потокобезопасные (thread-safe) классы и коллекции.

    • Паттерн пулов потоков (thread pool). Их применение.

    • Синхронизация при помощи замков. Паттерн Lock.

    • Коротко о работе Java с памятью.

  • Разработка графического пользовательского интерфейса

    • Основная концепция GUI.

    • Рабочий и интерфейсный потоки современных приложений.

  • Библиотека Swing

    • Структура оконного приложения.

    • Написание простейшего приложения.

    • Использование потоков в оконных приложениях.

  • Библиотека JavaFX

    • Архитектура MVC.

    • Структура программы на JavaFX.

    • Создание простого приложения JavaFX, использование языка FXML для разметки приложения.

    • Коллекции JavaFX.

  • Работа с базами данных на Java, JDBC API

    • Что такое база данных с точки зрения Java?

    • Понятие драйвера БД. DriverManager.

    • Установка сервера БД, настройка и подключение.

    • Получение мета-данных из БД.

    • Управление базами.

    • Составление и выполнение запросов на языке SQL.

    • Подготовленные запросы (PreparedStatement). Их важность и SQL-инъекции.

  • Приложение с GUI для работы с базой данных

    • Проектирование пользовательского интерфейса.

    • Разработка классов для реализации задачи.

    • Сборка и настройка приложения.

  • Основы создания web-приложений на Java

    • Архитектура распределенных приложений.

    • Структура web-приложения.

    • Сервлет на Java на примере JSF.

    • Введение в использование фреймворков.