Java Разработка. Продвинутый курс
Слушатели научатся анализировать XML-документы с использованием JAXP API. Будут подробно рассмотрены многопоточные приложения, разобраны ситуации race condition и deadlock. Слушатели также узнают, как использовать более сложные возможности ввода-вывода с сериализацией объектов и файловыми вводами-выводами с пакетом java.nio. Будет разобрано создание клиент/серверных приложений с использованием пакетов java.net и java.rmi. В завершение курса будут разобраны дополнительные темы JNDI и настройки производительности.
После изучения курса вы сможете:
- Использовать возможности JDK 1.7 в приложениях.
- Синхронизировать потоки многопоточных приложений.
- Уметь выявлять и избегать ситуаций deadlock и race condition в приложениях
- Разбирать XML документы, используя пакет
- Работать с файлами, используя пакет java.nio
- Разрабатывать клиент-серверные приложения, задействуя функционал пакетов java.net и java.rmi
- Использовать возможности сервиса JNDI
- Улучшать производительность уже написанных приложений
- Отличать и использовать основные механизмы шифрования из пакета javax.crypto
- Создавать нативные методы в программах на java
Содержание курса
Модуль 1: Введение
- Обзор курса и его цели
- Рекомендуемые ссылки
Модуль 2: Обработка XML с использованием JAXP
- Java API для обработки XML
- Введение в SAX
- SAX парсер и JAXP
- SAX методы обработки событий
- Введение в DOM
- Разбор DOM с помощью JAXP
- DOM API
- Валидация
- Преобразование
Модуль 3: Введение в потоки
- Однопоточные приложения
- Многопоточные приложения
- Создание потоков
- Состояния потоков
- Состояние Runnable
- Управление потоков
- Прерывание потоков
- Интерфейс Runnable
- Группы потоков
Модуль 4: Синхронизация и распараллеливание потоков
- Ситуация race condition
- Синхронизированные методы
- Ситуация deadlock
- Синхронизированные блоки
- Синхронизированные коллекции
- Потокобезопасные колллекции
- Взаимодействие потоков - метод wait()
- Взаимодействие потоков - метод notify()
- Интерфейс Executor
- Интерфейс Callable
Модуль 5: Потоки ввода/вывода. Сериализация объектов
- Что такое сериализация
- Сериализация объектов
- Запись объектов
- Чтение объектов
- Обработка исключений
- Настройка сериализации
- Управление сериализацией
- Версионность
Модуль 6: Потоки ввода/вывода. NIO
- Пакет java.nio.package
- Класс Buffer и интерфейс Channel
- Реализации Buffer
- Методы класса Buffer
- Методы класса ByteBuffer
- Файловый поток
- Блокировка файла
- Класс MappedByteBuffer
- Передача файлов между потоками
- Символьные множества
Модуль 7: Механизм рефлексия
- Введение в рефлексию
- Класс Class
- пакет reflect
- Constructors
- Fields
- Methods
- Обработка исключений и рефлексия
- Java бины
- Динамическое программирование
Модуль 8: Сетевой обмен данных с использованием сокетов
- Клиент и сервер
- Порт, адреса и протоколы
- Класс Socket
- Взаимодействие с использованием потоков ввода/вывода
- Класс Server
- Класс ServerSocket
- Параллельные сервера
- Класс URL
- Класс ConnectionURL
Модуль 9: Удаленный вызов метода (RMI)
- Распределенные приложения
- Заглушки
- Шаги для создания удаленного объекта
- RMI клиент
- RMI Сервер
- RMI классы и интерфейсы
- Класс Distribution
- Передача параметров и сериализация
Модуль 10: Технология JNDI
- Сервис именований и директорий
- Пространство имен и контекст
- Операции именования
- Связывание
- Атрибуты
- Операции каталогов
- Поиск DNS с помощью JNDI
- JNDI в JavaEE
Модуль 11: Настройки производительности Java
- Особенности оптимизации Java
- Виртуальная машина HotSpot
- Основные принципы работы сборщика мусора
- Генерации сборщиков мусора
- Алгоритмы работы сборщиков мусора
- Создание объекта
- Классы String, StringBuffer и StringBuilder
- Синхронизация
- Встроенные методы
- Улучшенные коллекции
Модуль 12: Шифрование с использованием пакета javax.crypto (Опционально)
- Основные принципы криптографии
- Ключ шифрования
- Алгоритмы шифрования
- Режимы и схемы с дополнением
- Класс Cipher
- Шифрование и дешифровка данных
- Cipher Output Stream
- Cipher Input Stream
- Шифрование с использованием паролей
- Обмен ключами шифрования
- Класс SealedObject
Модуль 13: Нативные методы (Опционально)
- Обзор нативных методов в Java и JNI
- Создание и использование нативныз методов в Java
- Объявление нативных методов
- Использование javah
- Создание и реализация кода
- Компиляция
- Распространение
- Использование нативных методов
- JNI
- Передача аргументов
- Вызов java-методов из нативного кода
- JNI сигнатура
Слушатели
Java-разработчики, которые желают усилить глубину знаний в Java-программировании и изучить использование различных дополнительных пакетов.