Ешь, двигайся, спи Жесткий подход Дэна Кеннеди Телефоны Бизбук - c 10 до 18 по будним дням
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• Java 9. Полный обзор нововведений, Шаран К.


Java 9. Полный обзор нововведений
Java 9. Полный обзор нововведений
Шаран К.
Год выпуска: 2018
Изд-во: ДМК
ISBN: 978-5-97060-575-2
Переплёт: твердый
544 страниц
Цена: 1148.00 грн.
Есть в наличии
в корзину

Instant Purshare Только на 1 книгу
Доставка: по Киеву - в течение суток*
                по Украине - от 2 до 10 суток*
В книге "Java 9. Полный обзор нововведений" рассматриваются все нововведения в Java 9 и объясняется, как ими пользоваться. Начав с подробного описания разработки приложений с использованием появившейся в Java 9 системы модулей, автор затем переходит к оболочке JShell, предназначенной для быстрого создания прототипа. Далее описываются все остальные новшества: измененная модульная структура образа среды выполнения JDK/JRE, новые фабричные методы для создания коллекций, уведомления процессора об активном ожидании с целью оптимизации потребления ресурсов, новый API платформенно-зависимого рабочего стола, API реактивных потоков и многое другое. Также уделено внимание несовместимым изменениям в Java 9.

Книга рассчитана на опытных Java-разработчиков, которым интересно, как перейти от Java 7 или 8 к Java 9.




Оглавление книги "Java 9. Полный обзор нововведений"




Об авторе......................................................................................................................13
О техническом рецензенте........................................................................................13
Благодарности..............................................................................................................14
Предисловие.................................................................................................................15
Как появилась эта книга.......................................................................................................................15
Об организации книги..........................................................................................................................16
Предполагаемая аудитория................................................................................................................16
Исходный код и ошибки......................................................................................................................16
Вопросы и замечания............................................................................................................................16
Глава 1. Введение......................................................................................................... 17
Введение в JDK 9..................................................................................................................................... 17
Как читать эту книгу...............................................................................................................................18
Требования к системе...........................................................................................................................20
Установка NetBeans IDE.......................................................................................................................21
Скачивание исходного кода...............................................................................................................21
Глава 2. Система модулей........................................................................................... 23
Жизнь до Java 9........................................................................................................................................23
Новая система модулей........................................................................................................................25
Что такое модуль?...................................................................................................................................26
Зависимости модулей........................................................................................................................... 27
Граф модулей........................................................................................................................................... 29
Модули-агрегаторы................................................................................................................................33
Объявление модулей.............................................................................................................................34
Имена модулей....................................................................................................................................... 35
Контроль доступа к модулям............................................................................................................. 35
Объявление зависимости....................................................................................................................37
Конфигурирование служб...................................................................................................................37
Дескрипторы модулей..........................................................................................................................38
Компиляция объявлений модулей.................................................................................................. 38
Версия модуля......................................................................................................................................... 38
Структура исходных файлов модуля.............................................................................................. 39
Упаковка модулей...................................................................................................................................40
Хранение модуля в каталоге............................................................................................................. 40
Хранение модуля в модульном JAR-файле................................................................................. 40
Хранение модуля в JMOD-файле..................................................................................................... 41
Путь к модулям.........................................................................................................................................41
Видимые модули.....................................................................................................................................43
Резюме.........................................................................................................................................................45
Глава 3. Создаем свой первый модуль..................................................................... 47
Работа с инструментами командной строки................................................................................ 47
Подготовка каталогов............................................................................................................................47
Написание исходного кода................................................................................................................ 48
Компиляция исходного кода............................................................................................................. 49
Упаковка кода модуля.......................................................................................................................... 51
Выполнение программы..................................................................................................................... 52
Работа с NetBeans IDE..........................................................................................................................54
Настройка IDE.......................................................................................................................................... 54
Создание проекта Java......................................................................................................................... 58
Задание свойств проекта................................................................................................................... 60
Добавление объявления модуля..................................................................................................... 62
Просмотр графа модуля...................................................................................................................... 64
Написание исходного кода................................................................................................................ 64
Компиляция исходного кода............................................................................................................. 65
Упаковка кода модуля.......................................................................................................................... 66
Выполнение программы......................................................................................................................67
Резюме.........................................................................................................................................................69
Глава 4. Зависимости модулей..................................................................................70
Объявление зависимостей модуля..................................................................................................70
Исправление возможных ошибок...................................................................................................78
Пустой пакет............................................................................................................................................. 78
Модуль не найден.................................................................................................................................. 78
Пакет не существует.............................................................................................................................. 78
Исключение при разрешении модуля.......................................................................................... 79
Неявное чтение........................................................................................................................................79
Квалифицированный экспорт............................................................................................................83
Факультативная зависимость.............................................................................................................85
Доступ к модулям с помощью рефлексии....................................................................................86
Раскрытые модули..................................................................................................................................87
Раскрытие пакетов.................................................................................................................................87
Использование глубокой рефлексии............................................................................................. 88
Доступность типов..................................................................................................................................96
Расщепление пакетов между несколькими модулями............................................................ 97
Ограничения в объявлениях модулей............................................................................................98
Типы модулей...........................................................................................................................................98
Нормальные модули............................................................................................................................. 99
Раскрытые модули................................................................................................................................. 99
Автоматические модули....................................................................................................................100
Безымянные модули...........................................................................................................................103
Порядок перехода на JDK 9............................................................................................................. 110
Дизассемблирование определения модуля............................................................................. 111
Резюме...................................................................................................................................................... 115
Глава 5. Реализация служб.......................................................................................117
Что такое служба?.................................................................................................................................117
Обнаружение служб............................................................................................................................ 119
Предоставление реализаций службы.......................................................................................... 120
Определение интерфейса службы................................................................................................ 122
Определение поставщиков службы............................................................................................. 125
Определение обычного поставщика службы простых чисел............................................125
Определение быстрого поставщика службы простых чисел.............................................127
Определение самого быстрого поставщика службы простых чисел..............................129
Тестирование службы простых чисел.......................................................................................... 130
Выборка и фильтрация поставщиков.......................................................................................... 134
Тестирование службы простых чисел по-старому.................................................................. 135
Резюме.......................................................................................................................................................137
Глава 6. Упаковка модуля.........................................................................................139
Формат JAR............................................................................................................................................. 139
Что такое многоверсионный JAR-файл?.....................................................................................140
Создание многоверсионных JAR-файлов...................................................................................142
Правила для многоверсионных JAR-файлов............................................................................148
Многоверсионные JAR-файлы и базовый загрузчик.............................................................150
Одинаковые файлы для разных версий JDK............................................................................150
Многоверсионные JAR-файлы и URL со схемой JAR............................................................. 150
Атрибут Multi-Release в манифесте.............................................................................................. 151
Формат JMOD......................................................................................................................................... 151
Программа jmod...................................................................................................................................151
Создание JMOD-файлов....................................................................................................................153
Извлечение содержимого JMOD-файла.....................................................................................154
Печать содержимого JMOD-файла................................................................................................154
Описание JMOD-файла......................................................................................................................155
Запись хэшей модулей......................................................................................................................155
Резюме...................................................................................................................................................... 158
Глава 7. Создание пользовательских образов среды выполненияя.................159
Что такое пользовательский образ среды выполнения?..................................................... 159
Создание пользовательского образа среды выполнения................................................... 160
Связывание служб............................................................................................................................... 164
Плагины команды jlink......................................................................................................................166
Команда jimage..................................................................................................................................... 169
Резюме...................................................................................................................................................... 171
Глава 8. Несовместимые изменения в JDK 9.........................................................172
Новая схема нумерации версий JDK........................................................................................... 172
Номер версии........................................................................................................................................173
Признак предварительной версии...............................................................................................174
Информация о сборке.......................................................................................................................174
Дополнительная информация........................................................................................................174
Разбор старой и новой строки версии........................................................................................175
Изменение значений системных свойств..................................................................................175
Использование класса Runtime.Version......................................................................................175
Изменения в JDK и JRE....................................................................................................................... 179
Структурные изменения JDK и JRE................................................................................................179
Изменения поведения.......................................................................................................................181
Изменения в загрузчиках классов................................................................................................182
Доступ к ресурсам............................................................................................................................... 186
Доступ к ресурсам до JDK 9.............................................................................................................186
Доступ к ресурсам JDK 9...................................................................................................................191
Внутренние API JDK............................................................................................................................. 204
Замена модуля...................................................................................................................................... 206
Резюме...................................................................................................................................................... 208
Глава 9. Нарушение инкапсуляции модуля...........................................................210
Что такое нарушение инкапсуляции модуля?.......................................................................... 210
Параметры командной строки....................................................................................................... 211
Параметр --add-exports.....................................................................................................................211
Параметр --add-opens........................................................................................................................212
Параметр --add-reads.........................................................................................................................212
Параметр --permit-illegal-access...................................................................................................213
Пример..................................................................................................................................................... 214
Атрибуты манифеста JAR-файла.................................................................................................... 220
Резюме...................................................................................................................................................... 223
Глава 10. API модулей...............................................................................................225
Что такое API модулей?..................................................................................................................... 225
Представление модулей....................................................................................................................227
Описание модулей...............................................................................................................................227
Представление предложений модуля.........................................................................................228
Представление версии модуля......................................................................................................230
Другие свойства модулей.................................................................................................................231
Базовая информация о модуле......................................................................................................232
Запросы к модулям............................................................................................................................. 235
Модификация модулей.......................................................................................................................237
Доступ к ресурсам модуля............................................................................................................... 241
Аннотации модулей............................................................................................................................ 241
Загрузка классов.................................................................................................................................. 243
Слои модулей......................................................................................................................................... 246
Поиск модулей......................................................................................................................................248
Чтение содержимого модуля..........................................................................................................250
Создание конфигураций...................................................................................................................252
Создание слоя модулей.....................................................................................................................254
Резюме...................................................................................................................................................... 262
Глава 11. Оболочка Java............................................................................................264
Что такое оболочка Java?.................................................................................................................. 264
Архитектура JShell............................................................................................................................... 266
Запуск команды JShell........................................................................................................................267
Выход из JShell..................................................................................................................................... 269
Что такое фрагменты и команды?................................................................................................. 270
Вычисление выражений.................................................................................................................... 271
Вывод списка фрагментов............................................................................................................... 273
Редактирование фрагментов...........................................................................................................277
Повторное выполнение предыдущих фрагментов................................................................ 280
Объявление переменных.................................................................................................................. 280
Предложения import.......................................................................................................................... 283
Объявление методов...........................................................................................................................287
Объявление типов................................................................................................................................ 288
Установка среды выполнения......................................................................................................... 292
Отсутствие контролируемых исключений................................................................................. 293
Автозавершение................................................................................................................................... 294
История фрагментов и команд........................................................................................................297
Чтение трассы стека в JShell........................................................................................................... 298
Повторное использование сеансов JShell................................................................................. 299
Сброс состояния JShell....................................................................................................................... 301
Перезагрузка состояния JShell....................................................................................................... 302
Конфигурирование JShell................................................................................................................. 305
Задание редактора фрагментов....................................................................................................305
Задание режима выдачи...................................................................................................................306
Создание пользовательских режимов выдачи........................................................................308
Задание стартовых фрагментов.....................................................................................................313
Использование документации по JShell.................................................................................... 316
JShell API.................................................................................................................................................. 318
Создание объекта JShell....................................................................................................................319
Работа с фрагментами.......................................................................................................................320
Обработка событий фрагмента......................................................................................................322
Пример.....................................................................................................................................................322
Резюме.......................................................................................................................................................327
Глава 12. Изменения API процессов.......................................................................328
Что такое API процессов?................................................................................................................. 328
Текущий процесс.................................................................................................................................. 329
Опрос состояния процесса............................................................................................................... 330
Сравнение процессов......................................................................................................................... 334
Создание процесса.............................................................................................................................. 334
Получение описателя процесса..................................................................................................... 342
Завершение процесса........................................................................................................................ 345
Управление правами процесса...................................................................................................... 345
Резюме...................................................................................................................................................... 348
Глава 13. Изменения API коллекций.......................................................................350
Общие сведения................................................................................................................................... 350
Немодифицируемые списки............................................................................................................ 353
Немодифицируемые множества.................................................................................................... 356
Немодифицируемые отображения............................................................................................... 360
Резюме...................................................................................................................................................... 364
Глава 14. Клиентский API HTTP/2...........................................................................365
Что такое клиентский API HTTP/2?............................................................................................... 366
Настройка среды для примеров.................................................................................................... 368
Создание HTTP-клиентов................................................................................................................. 369
Обработка HTTP-запросов............................................................................................................... 370
Получение построителя HTTP-запроса......................................................................................371
Задание параметров HTTP-запроса............................................................................................371
Задание политики перенаправления запроса......................................................................... 381
Использование протокола WebSocket........................................................................................ 382
Создание серверной оконечной точки.......................................................................................382
Создание клиентской оконечной точки......................................................................................385
Выполнение программы...................................................................................................................389
Устранение неполадок в приложении WebSocket.................................................................. 393
Резюме...................................................................................................................................................... 394
Глава 15. Модифицированный тип Deprecated....................................................395
Что такое нерекомендуемый API?................................................................................................. 395
Как объявить API нерекомендуемым........................................................................................... 395
Модификация аннотации @Deprecated в JDK 9..................................................................... 397
Подавление предупреждений о нерекомендованности..................................................... 399
Пример нерекомендуемого API..................................................................................................... 400
Статический анализ нерекомендуемых API.............................................................................. 405
Динамический анализ нерекомендуемых API......................................................................... 408
Отказ от предупреждений о нерекомендованности при импорте................................. 409
Резюме...................................................................................................................................................... 410
Глава 16. Навигация по стеку...................................................................................411
Что такое стек?...................................................................................................................................... 411
Что такое навигация по стеку?....................................................................................................... 412
Навигация по стеку JDK 8................................................................................................................. 412
Недостатки навигации по стеку..................................................................................................... 415
Навигация по стеку в JDK 9.............................................................................................................. 416
Параметры навигации по стеку.....................................................................................................416
Представление кадра стека.............................................................................................................416
Получение экземпляра StackWalker............................................................................................418
Навигация по стеку..............................................................................................................................419
Получение вызывающего класса..................................................................................................424
Права для навигации по стеку.........................................................................................................427
Резюме...................................................................................................................................................... 429
Глава 17. Реактивные потоки...................................................................................431
Что такое поток?................................................................................................................................... 431
Что такое реактивные потоки?....................................................................................................... 432
API реактивных потоков в JDK 9.................................................................................................... 434
Взаимодействия между издателем и подписчиком..............................................................435
Создание издателя..............................................................................................................................436
Публикация данных............................................................................................................................436
Простой пример...................................................................................................................................437
Создание подписчиков......................................................................................................................439
Использование процессоров..........................................................................................................445
Резюме...................................................................................................................................................... 448
Глава 18. Изменения API потоков...........................................................................450
Новые потоковые операции............................................................................................................ 450
Новые коллекторы............................................................................................................................... 454
Резюме...................................................................................................................................................... 460
Глава 19. Протоколирование на уровне платформы и JVM................................461
API платформенного протоколирования................................................................................... 461
Подготовка проекта NetBeans........................................................................................................462
Определение модуля..........................................................................................................................462
Добавление конфигурационного файла Log4j........................................................................464
Создание системного диспетчера протоколирования.........................................................465
Создание локатора диспетчера протоколирования..............................................................467
Тестирование платформенного модуля......................................................................................468
Унифицированное протоколирование JVM............................................................................... 472
Метки сообщений................................................................................................................................ 473
Уровни сообщений..............................................................................................................................474
Декораторы сообщений....................................................................................................................474
Место назначения сообщения........................................................................................................475
Синтаксис параметра -Xlog..............................................................................................................476
Резюме...................................................................................................................................................... 479
Глава 20. Другие изменения в JDK 9.......................................................................481
Знак подчеркивания — ключевое слово.................................................................................... 482
Усовершенствование блоков try с ресурсами.......................................................................... 483
Ромбовидный оператор в анонимных классах........................................................................487
Закрытые методы в интерфейсах................................................................................................. 490
Применение аннотации @SafeVarargs к закрытым методам........................................... 492
Отбрасывание вывода процесса................................................................................................... 494
Новые методы класса StrictMath................................................................................................... 496
Изменения в классе ClassLoader................................................................................................... 498
Новые методы в классе Optional........................................................................................... 499
Новые методы класса CompletableFuture.......................................................................... 502
Уведомления об активном ожидании.......................................................................................... 502
Улучшения в Time API......................................................................................................................... 504
Класс Clock..............................................................................................................................................504
Класс Duration.......................................................................................................................................504
Преобразование промежутка времени и выделение его частей....................................505
Фабричный метод ofInstant()..........................................................................................................507
Получение числа секунд от начала отсчета..............................................................................508
Поток объектов LocalDate................................................................................................................509
Новые параметры форматирования............................................................................................510
Класс Scanner и потоковые операции........................................................................................ 512
Улучшения в классе Matcher........................................................................................................... 513
Улучшения в классе Objects............................................................................................................. 515
Сравнение массивов........................................................................................................................... 516
API аплетов объявлен нерекомендуемым................................................................................. 519
Усовершенствования в документации Java............................................................................... 519
Поддержка платформенного рабочего стола.......................................................................... 522
Фильтры десериализации объектов............................................................................................. 526
Добавления в API ввода-вывода................................................................................................... 535
Резюме...................................................................................................................................................... 536
Предметный указатель.............................................................................................539


Хотите оставить отзыв? У Вас возникли вопросы о книге "Java 9. Полный обзор нововведений, Шаран К." ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

* Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 9 до 18 по будним дням: Киев 331-04-53, Водафон (050) 809-56-66, Киевстар (067) 408-26-36, Лайф (063) 227-24-47, Интертелеком (094) 831-04-53 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov