Поиск по сайту:

Модули Java 9


Модули Java 9 — одно из самых больших изменений в структуре пакета java. Здесь я собираюсь дать краткое введение высокого уровня о «Модульной системе Java 9».

Модули Java 9

Мы рассмотрим следующие темы о системе модулей java 9.

  1. Введение
  2. Java SE 9: проект Jigsaw
  3. Проблемы текущей системы Java?
  4. Преимущества модульной системы Java SE 9
  5. Сравните JDK 8 и JDK 9.
  6. Что такое модуль Java 9?
  7. Мать модульной системы Java 9
  8. Сравните приложения Java 8 и Java 9

Введение

Корпорация Oracle отложила выпуск Java 9 с марта 2017 г. на сентябрь 2017 г. Как мы знаем, Java SE 8 поставляется с тремя большими новыми функциями (плюс еще несколько улучшений и новых функций).

  1. Лямбда-выражения
  2. API потоковой передачи
  3. API даты

Точно так же Java SE 9 поставляется с тремя важными функциями (плюс еще несколько улучшений и новых функций):

  1. Система модулей Java (проект Jigsaw)
  2. Java REPL
  3. Измельчение монет проекта

В этом посте мы обсудим основы проекта Oracle Jigsaw.

Java SE 9: проект-головоломка

Проект Jigsaw представит совершенно новую концепцию Java SE 9: Java Module System. Это очень большой и престижный проект от Oracle Corp в выпуске Java SE 9. Изначально они начали этот проект как часть выпуска Java SE 7. Однако с огромными изменениями он переносится на Java SE 8, а затем снова откладывается. Теперь он собирается выпустить Java SE 9 в сентябре 2017 года. Основные цели проекта Jigsaw:

  • Модульный JDK Как мы знаем, текущая система JDK слишком велика. Поэтому они решили разделить сам JDK на небольшие модули, чтобы получить ряд преимуществ (мы скоро обсудим их в следующих разделах). Модульный исходный код Текущие файлы jar исходного кода слишком велики, особенно rt.jar слишком велик, верно. Поэтому они собираются разделить исходный код Java на более мелкие модули. Модульные образы времени выполнения. Основная цель этой функции — «Реструктурировать образы времени выполнения JDK и JRE для размещения модулей». — Инкапсулировать большинство внутренних API. Основная цель этой функции — «Сделать большую часть внутренних API-интерфейсов JDK недоступными по умолчанию, но оставить доступными несколько важных, широко используемых внутренних API-интерфейсов». — Система модулей платформы Java. Основная цель этой функции — «Позволить пользователю создавать свои модули для разработки своих приложений». — jlink: Java Linker Основная цель этого инструмента jlink — «Позволить пользователю создавать исполняемые файлы для своих приложений».

Если вы не понимаете эти вещи четко, НЕ беспокойтесь. Мы подробно обсудим эти концепции с некоторыми полезными примерами в следующих разделах, а также в моих следующих сообщениях.

Проблемы текущей системы Java?

В этом разделе мы обсудим «Зачем нам нужна модульная система Java SE 9», что означает проблемы текущей системы Java. Java SE 8 или более ранние системы имеют следующие проблемы при разработке или доставке приложений на основе Java.

  • Поскольку JDK слишком велик, масштабировать его до небольших устройств довольно сложно. В Java SE 8 для решения этой проблемы представлены 3 типа компактных профилей: compact1, compact2 и compact3. Но это не решает эту проблему.
  • Файлы JAR, такие как rt.jar и т. д., слишком велики для использования в небольших устройствах и приложениях.
  • Поскольку JDK слишком велик, наши приложения или устройства не могут поддерживать более высокую производительность.
  • В текущей системе Java нет строгой инкапсуляции, потому что модификатор доступа «public» слишком открыт. Каждый может получить к нему доступ.
  • Поскольку JDK и JRE слишком велики, трудно тестировать и поддерживать приложения.
  • Поскольку общественность слишком открыта, они не должны избегать доступа к некоторым внутренним некритическим API, таким как sun.*, *.internal.* и т. д.
  • Поскольку пользователь также может получить доступ к внутренним API, безопасность также является серьезной проблемой.
  • Приложение слишком большое.
  • Поддерживать Less Coupling между компонентами немного сложно.

Чтобы решить все эти проблемы, Oracle Corp собирается выпустить систему Java Module в Java SE 9 Release.

Преимущества модульной системы Java SE 9

Модульная система Java SE 9 предоставит следующие преимущества:

  • Поскольку Java SE 9 собирается разделить JDK, JRE, JAR и т. д. на более мелкие модули, мы можем использовать любые модули, которые захотим. Таким образом, очень легко масштабировать Java-приложение для небольших устройств.
  • Простота тестирования и обслуживания.
  • Поддерживает более высокую производительность.
  • Поскольку public не просто общедоступен, он поддерживает очень строгую инкапсуляцию. (Не волнуйтесь, это большая концепция. Вскоре мы рассмотрим ее на нескольких полезных примерах).
  • У нас больше нет доступа к внутренним некритическим API.
  • Модули могут очень безопасно скрывать нежелательные и внутренние данные, мы можем улучшить безопасность.
  • Приложение слишком маленькое, потому что мы можем использовать только те модули, которые нам нужны.
  • Поддерживать Less Coupling между компонентами легко.
  • Поддерживать принцип единой ответственности (SRP) легко.

Мы рассмотрим все эти концепции одну за другой в ближайшее время.

Сравните JDK 8 и JDK 9.

Что такое модуль Java 9?

Мать модульной системы Java 9

На данный момент модульная система Java 9 включает 95 модулей в раннем доступе JDK. Корпорация Oracle разделила файлы JDK jar и спецификации Java SE на два набора модулей.

  • Все модули JDK начинаются с \jdk.*
  • Все модули спецификаций Java SE начинаются с \java.*

Модульная система Java 9 имеет модуль \java.base. Он известен как базовый модуль. Это независимый модуль, который НЕ зависит ни от каких других модулей. По умолчанию все другие модули зависят от этого модуля. Вот почему \java. base» также известен как The Mother of Java 9 Modules. Это модуль по умолчанию для всех модулей JDK и определяемых пользователем модулей.

Сравните приложения Java 8 и Java 9

  • Один модуль
  • Название модуля
  • Дескриптор модуля
  • Набор пакетов
  • Набор типов и ресурсов

Здесь Resources может быть module-info.java (дескриптор модуля) или любые другие свойства или XML. Мы обсудили слишком много теории в этом посте. Думаю, этого достаточно, чтобы понять основы модульной системы Java 9. Мы начнем базовую разработку модуля в моем следующем посте. Я буду обсуждать еще некоторые теоретические концепции или терминологию модульной системы Java 9 по мере необходимости. Это все, что касается темы «Введение в модульную систему Java 9». Мы обсудим еще несколько концепций модульной системы Java SE 9 в моих следующих сообщениях. Пожалуйста, напишите мне комментарий, если вам понравился мой пост или у вас есть какие-либо проблемы/предложения/ошибки типа , Спасибо за чтение моих руководств. Приятного изучения Java SE 9! Ссылка: Project Jigsaw