Author(s): Кей Хорстманн
Series: Библиотека профессионала, т. 2
Edition: 10
Publisher: Компьютерное издательство «Диалектика»
Year: 2017
Language: Russian
Pages: 976
City: Москва
Tags: IT, Java
Содержание
Предисловие
К читателю
Краткий обзор книги
Условные обозначения
Примеры исходного кода
Благодарности
От издательства
Глава 1. Библиотека потоков данных в Java SE 8
1.1. От итерации к потоковым операциям
1.2. Создание потока данных
1.3. Методы filter (), map () и flatMap ()
1.4. Извлечение подпотоков и сцепление потоков данных
1.5. Другие операции преобразования потоков данных
1.6. Простые методы сведения
1.7. Тип Optional
1.7.1. Как обращаться с необязательными значениями
1.7.2. Как не следует обращаться с необязательными значениями
1.7.3. Формирование необязательных значений
1.7.4. Сочетание функций необязательных значений с методом flatMap ()
1.8. Накопление результатов
1.9. Накопление результатов в отображениях
1.10. Группирование и разделение
1.11. Нисходящие коллекторы
1.12. Операции сведения
1.13. Потоки данных примитивных типов
1.14. Параллельные потоки данных
Глава 2. Ввод и вывод
2.1. Потоки ввода-вывода
2.1.1. Чтение и запись байтов
2.1.2. Полный комплект потоков ввода-вывода
2.1.3. Сочетание фильтров потоков ввода-вывода
2.2. Ввод-вывод текста
2.2.1. Вывод текста
2.2.2. Ввод текста
2.2.3. Сохранение объектов в текстовом формате
2.2.4. Кодировки символов
2.3. Чтение и запись двоичных данных
2.3.1. Интерфейсы Datalnput и DataOutput
2.3.2. Файлы с произвольным доступом
2.3.3. ZIP-архивы
2.4. Потоки ввода-вывода и сериализация объектов
2.4.1. Сохранение и загрузка сериализируемых объектов
2.4.2. Представление о формате файлов для сериализации объектов
2.4.3. Видоизменение исходного механизма сериализации
2.4.4. Сериализация одноэлементных множеств и типизированных перечислений
2.4.5. Контроль версий
2.4.6. Применение сериализации для клонирования
2.5. Манипулирование файлами
2.5.1. Пути к файлам
2.5.2. Чтение и запись данных в файлы
2.5.3. Создание файлов и каталогов
2.5.4. Копирование, перемещение и удаление файлов
2.5.5. Получение сведений о файлах
2.5.6. Обход элементов каталога
2.5.7. Применение потоков каталогов
2.5.8. Системы ZIP-файлов
2.6. Файлы, отображаемые в памяти
2.6.1. Эффективность файлов, отображаемых в памяти
2.6.2. Структура буфера данных
2.6.3. Блокирование файлов
2.7. Регулярные выражения
Глава 3. XML
3.1. Введение в XML
3.1.1. Структура XML-документа
3.2. Синтаксический анализ XML-документов
3.3. Проверка достоверности XML-документов
3.3.1. Определения типов документов
3.3.2. Схема XML-документов
3.3.3. Практический пример применения XML-документов
3.4. Поиск информации средствами XPath
3.5. Использование пространств имен
3.6. Потоковые синтаксические анализаторы
3.6.1. Применение SAX-анализатора
3.6.2. Применение StAX-анализатора
3.7. Формирование XML-документов
3.7.1. XML-документы без пространств имен
3.7.2. XML-документы с пространствами имен
3.7.3. Запись XML-документов
3.7.4. Пример формирования файла в формате SVG
3.7.5. Запись XML-документов средствами StAX
3.8. Преобразование XML-документов языковыми средствами XSLT
Глава 4. Работа в сети
4.1. Подключение к серверу
4.1.1. Применение утилиты telnet
4.1.2. Подключение к серверу из программы на Java
4.1.3. Время ожидания для сокетов
4.1.4. Межсетевые адреса
4.2. Реализация серверов
4.2.1. Сокеты сервера
4.2.2. Обслуживание многих клиентов
4.2.3. Полузакрытое
4.3. Прерываемые сокеты
4.4. Получение данных из Интернета
4.4.1. URL и URI
4.4.2. Извлечение данных средствами класса URLConnection
4.4.3. Отправка данных формы
4.5. Отправка электронной почты
Глава 5. Работа с базами данных
5.1. Структура JDBC
5.1.1. Типы драйверов JDBC
5.1.2. Типичные примеры применения JDBC
5.2. Язык SQL
5.3. Конфигурирование JDBC
5.3.1. URL баз данных
5.3.2. Архивные JAR-файлы драйверов
5.3.3. Запуск базы данных
5.3.4. Регистрация класса драйвера
5.3.5. Подключение к базе данных
5.4. Работа с операторами JDBC
5.4.1. Выполнение команд SQL
5.4.2. Управление соединениями, командами и результирующими наборами
5.4.3. Анализ исключений SQL
5.4.4. Заполнение базы данных
5.5. Выполнение запросов
5.5.1. Подготовленные операторы и запросы
5.5.2. Чтение и запись больших объектов
5.5.3. Синтаксис переходов в SQL
5.5.4. Множественные результаты
5.5.5. Извлечение автоматически генерируемых ключей
5.6. Прокручиваемые и обновляемые результирующие наборы
5.6.1. Прокручиваемые результирующие наборы
5.6.2. Обновляемые результирующие наборы
5.7. Наборы строк
5.7.1. Создание наборов строк
5.7.2. Кешируемые наборы строк
5.8. Метаданные
5.9. Транзакции
5.9.1. Программирование транзакций средствами JDBC
5.9.2. Точки сохранения
5.9.3. Групповые обновления
5.10. Расширенные типы данных SQL
5.11. Управление подключением к базам данных в веб-приложениях и производственных приложениях
Глава 6. Прикладной программный интерфейс API даты и времени
6.1. Временная шкала
6.2. Местные даты
6.3. Корректоры дат
6.4. Местное время
6.5. Поясное время
6.6. Форматирование и синтаксический анализ даты и времени
6.7. Взаимодействие с унаследованным кодом
Глава 7. Интернационализация
7.1. Региональные настройки
7.2. Числовые форматы
7.3. Форматирование денежных сумм в разных валютах
7.4. Форматирование даты и времени
7.5. Сортировка и нормализация
7.6. Форматирование сообщений
7.6.1. Форматирование чисел и дат
7.6.2. Форматы выбора
7.7. Ввод-вывод текста
7.7.1. Текстовые файлы
7.7.2. Окончания строк
7.7.3. Консольный ввод-вывод
7.7.4. Протокольные файлы
7.7.5. Отметка порядка следования байтов в кодировке UTF-8
7.7.6. Кодирование символов в исходных файлах
7.8. Комплекты ресурсов
7.8.1. Обнаружение комплектов ресурсов
7.8.2. Файлы свойств
7.8.3. Классы комплектов ресурсов
7.9. Пример интернационализации прикладной программы
Глава 8. Написание сценариев, компиляция и обработка аннотаций
8.1. Написание сценариев для платформы Java
8.1.1. Получение механизма сценариев
8.1.2. Выполнение сценариев и привязки
8.1.3. Переадресация ввода-вывода
8.1.4. Вызов сценарных функций и методов
8.1.5. Компиляция сценариев
8.1.6. Пример создания сценария для обработки событий в ГПИ
8.2. Прикладной программный интерфейс API для компилятора
8.2.1. Простой способ компилирования
8.2.2. Выполнение заданий на компиляцию
8.2.3. Пример динамического генерирования кода Java
8.3. Применение аннотаций
8.3.1. Введение в аннотации
8.3.2. Пример аннотирования обработчиков событий
8.4. Синтаксис аннотаций
8.4.1. Интерфейсы аннотаций
8.4.2. Объявление аннотаций
8.4.3. Аннотирование объявлений
8.4.4. Аннотирование в местах употребления типов данных
8.4.5. Аннотирование по ссылке this
8.5. Стандартные аннотации
8.5.1. Аннотации для компиляции
8.5.2. Аннотации для управления ресурсами
8.5.3. Мета-аннотации
8.6. Обработка аннотаций на уровне исходного кода
8.6.1. Процессоры аннотаций
8.6.2. Прикладной программный интерфейс API модели языка
8.6.3. Генерирование исходного кода с помощью аннотаций
8.7. Конструирование байт-кодов
8.7.1. Видоизменение файлов классов
8.7.2. Видоизменение байт-кодов во время загрузки
Глава 9. Безопасность
9.1. Загрузчики классов
9.1.1. Процесс загрузки классов
9.1.2. Иерархия загрузчиков классов
9.1.3. Применение загрузчиков классов в качестве пространств имен
9.1.4. Создание собственного загрузчика классов
9.1.5. Верификация байт-кода
9.2. Диспетчеры защиты и полномочия
9.2.1. Проверка полномочий
9.2.2. Организация защиты на платформе Java
9.2.3. Файлы правил защиты
9.2.4. Пользовательские полномочия
9.2.5. Реализация класса полномочий
9.3. Аутентификация пользователей
9.3.1. Каркас]AAS
9.3.2. Модули регистрации JAAS
9.4. Цифровые подписи
9.4.1. Свертки сообщений
9.4.2. Подписание сообщений
9.4.3. Верификация подписи
9.4.4. Проблема аутентификации
9.4.5. Подписание сертификатов
9.4.6. Запросы сертификатов
9.4.7. Подписание кода
9.5. Шифрование
9.5.1. Симметричные шифры
9.5.2. Генерирование ключей шифрования
9.5.3. Потоки шифрования
9.5.4. Шифрование открытым ключом
Глава 10. Расширенные средства Swing
10.1. Списки
10.1.1. Компонент JList
10.1.2. Модели списков
10.1.3. Ввод и удаление значений
10.1.4. Воспроизведение значений
10.2. Таблицы
10.2.1. Простая таблица
10.2.2. Модели таблиц
10.2.3. Манипулирование строками и столбцами таблицы
10.2.4. Воспроизведение и редактирование ячеек
10.3. Деревья
10.3.1. Простые деревья
10.3.3. Перечисление узлов дерева
10.3.4. Воспроизведение узлов дерева
10.3.5. Обработка событий в деревьях
10.3.6. Специальные модели деревьев
10.4. Текстовые компоненты
10.4.1. Отслеживание изменений в текстовых компонентах
10.4.2. Поля ввода форматируемого текста
10.4.3. Компонент JSpinner
10.4.4. Отображение HTML-документов средствами JEditorPane
10.5. Индикаторы состояния
10.5.1. Индикаторы выполнения
10.5.2. Мониторы текущего состояния
10.5.3. Контроль процесса чтения данных из потока ввода
10.6. Организаторы и декораторы компонентов
10.6.1. Разделяемые панели
10.6.2. Панели с вкладками
10.6.3. Настольные панели и внутренние фреймы
10.6.4. Слои
Глава 11. Расширенные средства AWT
11.1. Конвейер визуализации
11.2. Фигуры
11.2.1. Иерархия классов рисования фигур
11.2.2. Применение классов рисования фигур
11.3. Участки
11.4. Обводка
11.5. Раскраска
11.6. Преобразование координат
11.7. Отсечение
11.8. Прозрачность и композиция
11.9. Указания по воспроизведению
11.10. Чтение и запись изображений
11.10.1. Получение средств чтения и записи изображений по типам файлов
11.10.2. Чтение и запись файлов с несколькими изображениями
11.11. Манипулирование изображениями
11.11.1. Формирование растровых изображений
11.11.2. Фильтрация изображений
11.12. Вывод изображений на печать
11.12.1. Вывод двухмерной графики на печать
11.12.2. Многостраничная печать
11.12.3. Предварительный просмотр печати
11.12.4. Службы печати
11.12.5. Потоковые службы печати
11.12.6. Атрибуты печати
11.13. Буфер обмена
11.13.1. Классы и интерфейсы для передачи данных
11.13.2. Передача текста
11.13.3. Интерфейс Transferable и разновидности данных
11.13.4. Передача изображений через буфер обмена
11.13.5. Передача объектов Java через системный буфер обмена
11.13.6. Передача ссылок на объекты через локальный буфер обмена
11.14. Перетаскивание объектов
11.14.1. Поддержка передачи данных в Swing
11.14.2. Источники перетаскивания
11.14.3. Приемники перетаскивания
11.15. Интеграция с платформой
11.15.1. Начальные экраны
11.15.2. Запуск настольных приложений
11.15.3. Системная область
Глава 12. Платформенно-ориентированные методы
12.1 Вызов функции на С из программы на Java
12.2. Числовые параметры и возвращаемые значения
12.3. Строковые параметры
12.4. Доступ к полям
12.4.1. Доступ к полям экземпляра
12.4.2. Доступ к статическим полям
12.5. Кодирование сигнатур
12.6. Вызов методов на Java
12.6.1. Методы экземпляра
12.6.2. Статические методы
12.6.3. Конструкторы
12.6.4. Альтернативные вызовы методов
12.7. Доступ к элементам массивов
12.8. Обработка ошибок
12.9. Применение прикладного программного интерфейса API для вызовов
12.10. Пример обращения к реестру Windows
12.10.1. Общее представление о реестре Windows
12.10.2. Интерфейс для доступа к реестру на платформе Java
12.10.3. Реализация функций доступа к реестру в виде платформенно-ориентированных методов
Предметный указатель