Oracle Java Development Kit (JDK)

Продукт
Разработчики: Oracle
Дата последнего релиза: 2021/03/23
Технологии: Средства разработки приложений

Содержание

Oracle Java Development Kit - бесплатный комплект разработчика приложений на языке Java. Распространяется корпорацией Oracle.

В составе комплекта компилятор Java (javac), стандартные библиотеки классов Java, примеры, документация, утилиты и окружение Java (JRE). В составе JDK нет среды разработки.

Появившись в девяностых годах, Java-плагин был призван наделить веб-страницы функциональностью приложений с помощью обработки Java-апплетов. Однако с появлением HTML5 и других современных средств веб-разработки, потребность в использовании апплетов постепенно отпала.

2021: Oracle JDK 16

23 марта 2021 года компания Oracle объявила о выходе релиза платформы Java 16 (Oracle JDK 16), включающего 17 усовершенствований. В обновленном релизе Java Development Kit (JDK) финализированы функции Паттерн-матчинга для оператора InstanceOf (JEP 394) и Записи (JEP 395), синтаксические улучшения, впервые представленные как превью в Java 14. Кроме того, с выходом данного релиза разработчики могут использовать инструмент упаковки (JEP 392) для создания самодостаточных Java-приложений. Доступны для изучения три инкубационных модуля: инструментарий для преобразования векторных вычислений Vector API (JEP 338), инструментарий для статического доступа к нативному коду из Java Foreign Linker API (JEP 389) и API для доступа вне кучи Java (JEP 393), а также «Запечатанные» классы, которые появились в Java 16 в режиме второго превью (JEP 397).

Oracle JDK 16

По информации компании, Oracle выпускает релизы Java каждые шесть месяцев, чтобы предоставить разработчикам четкий график. Обновления раз в полгода предоставляют воз доступа к постоянному потоку инноваций и обеспечивает непрерывную оптимизацию продуктивности, стабильности и безопасности.

«
С выпуском релиза мы еще раз убедились в том, что график выхода обновлений раз в полгода удобен и эффективен. Паттерн-матчинг для оператора InstanceOf и Записи были впервые представлены в релизе JDK 14 и с тех пор прошли несколько раундов тестирования и практического применения с обратной связью от сообщества. Этот процесс не только дал разработчикам Java возможность поэкспериментировать с функциями до финализации, но и дал возможность услышать критику. В результате были созданы два стабильных JEPа, которые действительно отвечают потребностям сообщества.

отметил Жорж Сааб, вице-президент по разработке Java Platform Group, Oracle
»

Релиз Java 16 является результатом процесса разработки, открытого для критики и пожеланий со стороны сообщества. В процессе подготовки выходили регулярные обзоры и еженедельные промежуточные сборки. Интенсивное сотрудничество между разработчиками из Oracle и участниками сообщества из разных стран мира осуществлялось через OpenJDK Community и Java Community Process. Краткий перечень функционала, доступного в релизе Java 16:

  • Оптимизация языка, впервые представленные в JDK 14 и финализированные в JDK 16
    • JEP 394: Pattern Matching for instanceof – Оптимизирует язык программирования Java за счет возможности паттерн-матчинга для оператора InstanceOf.
    • JEP 395: Records – Расширяет язык программирования Java с помощью записей, которые представляют собой классы, действующие как прозрачные носители неизменяемых данных. Записи можно рассматривать как номинальные кортежи.

  • Инструмент для оптимизации продуктивности разработки JEP 392: Packaging Tool – Предоставляет инструмент jpackage для упаковки самодостаточных Java приложений.

    • Оптимизированное управление памятью для оптимизации производительности JEP 387: Elastic Metaspace – Более оперативно возвращает неиспользуемую память метаданных класса HotSpot (metaspace) в операционную систему, сокращает объем метапространства и упрощает код метапространства, чтобы снизить затраты на обслуживание.
    • JEP 376: ZGC: Concurrent Thread-Stack Processing – Перемещает обработку стека потоков ZGC из safepoints в параллельную фазу. Это позволяет исключить последнее значимое узкое место для обеспечения одновременной обработки стека.

  • Оптимизированный нетворкинг для оптимизации производительности и гибкости разработчиков

    • JEP 380: UNIX-Domain Socket Channels – В релизе добавлена поддержка сокетов доменов Unix в socket channel и server-socket channel API пакета java.nio.channels. Такие сокеты используются для межпроцессного взаимодействия внутри одного хоста, и в них не используются сетевые соединения, что делает такое взаимодействие более безопасным и эффективным. Они во многом похожи на сокеты TCP/IP, за исключением того, что к ним обращаются по путям файловой системы, а не по адресам Интернет-протокола (IP) и номерам портов.

  • Решение проблемы несовместимости с будущими релизами

    • JEP 396: Strongly Encapsulate JDK Internals by Default – I В JDK 9 инкапсулировали внутренние элементы API, тем самым ограничив доступ к ним. Однако для облегчения перехода, на момент выхода JDK 9 было принято решение не инкапсулировать так же строго во время выполнения содержимое пакетов, как это требовалось в JDK 8. В JDK 16 ограничение снова ужесточено, большинство внутренних элементов JDK инкапсулировано по умолчанию, за исключением критически важных внутренних API-интерфейсов, например, sun.misc.Unsafe. Конечные пользователи по-прежнему могут выбрать упрощенную сильную инкапсуляцию, которая используется по умолчанию с момента выхода JDK 9. Это побудит разработчиков перейти от использования внутренних элементов к использованию стандартных API, чтобы и они, и пользователи могли без проблем перейти на будущие версии Java.
    • JEP 390: Warnings for Value-Based Classes – Классы-обертки примитивных типов теперь относятся к категории value-based классов, и их конструкторы, которые ранее стали deprecated в Java 9, теперь помечены как deprecated for removal. Предоставляет предупреждения о неправильных попытках синхронизации экземпляров любых value-based классов в платформе Java.

  • Инкубационные модули и превью

    • JEP 338: Vector API (Incubator) – Представляет собой начальную итерацию модуля инкубатора jdk.incubator.vector для преобразования векторных вычислений, которые компилируются во время выполнения, в оптимальные векторные аппаратные инструкции на поддерживаемых CPU архитектурах.
    • JEP 389: Foreign Linker API (Incubator) – API, предлагающий статический, более простой доступ из Java к нативному коду.
    • JEP 393: Foreign-Memory Access API (Third Incubator) – API, позволяющий программам Java безопасно и эффективно обращаться к внешней памяти за пределами кучи Java.
    • JEP 397: Sealed Classes (Second Preview) – оптимизирует язык программирования Java с помощью запечатанных классов и интерфейсов. Запечатанные классы и интерфейсы ограничивают возможность другим классам или интерфейсам расширять или реализовывать их.

  • Оптимизация по пожеланиям участников сообщества OpenJDK

    • JEP 347: Enable C++14 Language Features (in the JDK source code) – Позволяет использовать функции стандарта языка C++14 в исходном коде JDK C++ и дает конкретные рекомендации о том, какие из этих функций могут использоваться в коде HotSpot.
    • JEP 357: Migrate from Mercurial to Git – Переносит репозитории исходного кода сообщества OpenJDK с Mercurial (hg) на Git.
    • JEP 369: Migrate to GitHub – Размещает Git репозитории сообщества OpenJDK на GitHub.

  • Порты, обеспечивающие поддержку Java на других платформах

    • JEP 386: Alpine Linux Port – Портирует JDK на Alpine Linux и другие дистрибутивы Linux, которые используют musl в качестве основной библиотеки C, как для архитектуры x64, так и для архитектуры AArch64.
    • JEP 388: Windows/Aarch64 Port – Портирует JDK на Windows/AArch64.

«
Вместо того, чтобы каждые три или четыре года интересоваться тем, какие обновления появились в Java, я живу в другом, предложенном мне Oracle ритме, который позволяет оставаться активным разработчиком, преподавателем и инструктором. Я с интересом ожидал возможности пользоваться синтаксической конструкцией "Записи", чтобы оптимизировать производительность и читаемость моего кода обработки данных, после того как потестировал эту функцию в превью. И в данном релизе функция стала доступной для работы.

отметил Хосе Помар, доцент Университета Сорбонна Париж Нор, и один из организаторов группы Paris Java User
»

2016: Oracle отказывается от разработки Java-плагина

Корпорация Oracle объявила о постепенном отказе от использования Java-плагина для браузеров. Он будет исключен из компонентов Java Development Kit и Java Runtime Environment будущих выпусков Java SE, начиная с сентября 2016 г.

Разработчики приложений, которые можно запускать только с помощью Java-плагина, могут воспользоваться альтернативой в лице технологии Java Web Start, которая не требует установки модулей, сообщили представители корпорации.

2015: Oracle выпустила Java Development Kit 8, Update 40

12 марта 2015 года корпорация Oracle объявила о выпуске Java Development Kit (JDK) 8, Update 40 (JDK 8u40).

Скриншот окна продукта, 2015

JDK 8u40 вносит усовершенствования в производительность, масштабируемость и администрирование, помогая разработчикам Java-приложений, партнерам и руководителям, несущим ответственность за принятие ИТ-решений, проще и быстрее внедрять инновации и улучшать приложения. В состав этой версии вошли обновления JavaFX.

2013: JDK 7 Update 40

10 сентября 2013 года корпорация Oracle объявила о выпуске JDK 7 Update 40 (JDK 7u40), который обеспечивает расширенный функционал мониторинга и диагностики, повышенную производительность и эффективность работы ПО Java на серверах с процессорной архитектурой ARM.


Доступные дополнения

Oracle Java Mission Control и Oracle Java Flight Recorder теперь доступны в виде коммерческих функций в продукте Oracle Java SE Advanced (эти опции можно загрузить бесплатно для пробного использования в составе пакета JDK 7u40, однако при использовании в промышленных масштабах на основе лицензионного соглашения Oracle Binary Code License Agreement необходимо приобрести лицензию Oracle Java SE Advanced).


Контроль приложений и версий

В JDK 7u40 реализована новая функция Deployment Rule Set. С её помощью системный администратор контролирует - какие апплеты или приложения Java Web Start выполняются пользователем, какая версия Java Runtime Environment (JRE) с ними связана. Deployment Rule Set предоставляет единую среду для контролируемого и безопасного управления доступом пользователей.


Поддержка мобильной архитектуры

Пакет JDK 7u40 сертифицирован для процессорной архитектуры ARM v7 и включает новую поддержку вычислительных операций с плавающей точкой (hard float), что позволяет улучшить производительность и быстроту реагирования для приложений с графическим интерфейсом пользователя и серверных приложений Java, выполняемых на ARM-серверах.


Графические функции

В версии JDK 7u40 реализована поддержка для дисплеев Retina, которыми оснащаются устройства с ОС Mac OS X. ПО Java будет теперь распознавать экраны Retina и автоматически генерировать графику высокого разрешения.

Смотрите также



СМ. ТАКЖЕ (13)


Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Microsoft (41, 47)
  Солар (ранее Ростелеком-Солар) (2, 46)
  Oracle (49, 26)
  Hyperledger (Open Ledger Project) (1, 23)
  IBM (33, 18)
  Другие (553, 270)

Распределение базовых систем по количеству проектов, включая партнерские решения (проекты, партнерские проекты)

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Solar appScreener (ранее Solar inCode) - 8 (8, 0)
  FIS Platform - 4 (4, 0)
  Siemens Xcelerator - 2 (2, 0)
  Парадокс: MES Builder - 2 (2, 0)
  Турбо X - 2 (2, 0)
  Другие 21