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).Российский рынок ERP-систем сократился, но приготовился к росту. Обзор и рейтинг TAdviser 250.1 т


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

В 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)