Список версий языка программирования Java
Язык Java претерпел несколько изменений со времени JDK 1.0, а также многочисленные добавления классов и пакетов в стандартную библиотеку . Начиная с J2SE 1.4, эволюция языка Java регулируется Процессом сообщества Java (JCP), который использует запросы спецификации Java (JSR) для предложения и указания дополнений и изменений в платформе Java . Язык определяется Спецификацией языка Java (JLS); изменения в JLS управляются в соответствии с JSR 901. В сентябре 2017 года Марк Рейнхольд, главный архитектор платформы Java, предложил изменить цикл выпуска на «один выпуск функции каждые шесть месяцев», а не на нынешний двухлетний график. [1] [2] Это предложение вступило в силу для всех последующих версий и по-прежнему является текущим графиком выпуска.
Помимо языковых изменений, за прошедшие годы в библиотеку классов Java были внесены и другие изменения , которые выросли с нескольких сотен классов в JDK 1.0 до более трех тысяч в J2SE 5. Совершенно новые API , такие как Swing и Java2D , были представлены, и многие исходные классы и методы JDK 1.0 устарели . Некоторые программы позволяют конвертировать программы Java из одной версии платформы Java в более старую (например, Java 5.0, перенесенную на версию 1.4) (см. Инструменты резервного копирования Java ).
Что касается плана поддержки Oracle Java SE, [3] версия 21 является последней, а версии 21, 17, 11 и 8 являются поддерживаемыми в настоящее время версиями долгосрочной поддержки (LTS), в которых клиенты Oracle получат поддержку Oracle Premier Support. Oracle продолжает выпускать бесплатные общедоступные обновления Java 8 для разработки [3] и личного использования на неопределенный срок. Oracle также продолжает выпускать бесплатные общедоступные обновления Java 17 LTS для всех пользователей, включая коммерческое и производственное использование, до сентября 2024 года. [4]
В случае OpenJDK как коммерческая долгосрочная поддержка, так и бесплатные обновления программного обеспечения доступны от нескольких организаций в более широком сообществе . [5]
Java 21, последняя (четвертая) версия LTS, была выпущена 19 сентября 2023 года.
Таблица релизов
JDK 1.0
Первая версия была выпущена 23 января 1996 года. [16] [17] Первая стабильная версия, JDK 1.0.2, называется Java 1. [17]
JDK 1.1
Основные дополнения к выпуску от 19 февраля 1997 г. включали: [18]
J2SE 1.2
Выпуск от 8 декабря 1998 года и последующие выпуски J2SE 5.0 были ретроспективно переименованы в Java 2 , а название версии «J2SE» ( платформа Java 2, Standard Edition ) заменило JDK, чтобы отличить базовую платформу от J2EE ( платформа Java 2, Enterprise Edition ). и J2ME ( платформа Java 2, Micro Edition ). Это был очень важный выпуск Java, поскольку он утроил размер платформы Java до 1520 классов в 59 пакетах. Основные дополнения включали: [20]
J2SE 1.3
Наиболее заметными изменениями в выпуске от 8 мая 2000 г. были: [21] [22]
Java 1.3 — последняя версия Java, официально поддерживающая Microsoft Windows 95 . [23]
J2SE 1.4
Выпуск от 6 февраля 2002 г. стал первым выпуском платформы Java, разработанной в рамках процесса сообщества Java под названием JSR 59. Основные изменения включали: [24] [25]
- Языковые изменения
assert
ключевое слово (указанное в JSR 41)
- Улучшения библиотеки
- Регулярные выражения , созданные по образцу регулярных выражений Perl.
- Цепочка исключений позволяет исключению инкапсулировать исходное исключение нижнего уровня.
- Поддержка Интернет-протокола версии 6 ( IPv6 )
- Неблокирующий ввод-вывод (названный NIO) (указан в JSR 51)
- API ведения журнала (указан в JSR 47)
- API ввода-вывода изображений для чтения и записи изображений в таких форматах, как JPEG и PNG.
- Встроенный синтаксический анализатор XML и процессор XSLT ( JAXP ) (указан в JSR 5 и JSR 63).
- Интегрированные расширения безопасности и криптографии ( JCE , JSSE , JAAS )
- Включен Java Web Start (Java Web Start был впервые выпущен в марте 2001 года для J2SE 1.3) (указан в JSR 56)
- API настроек (
java.util.prefs
)
Публичная поддержка и обновления безопасности для Java 1.4 закончились в октябре 2008 года. Платные обновления безопасности для клиентов Oracle закончились в феврале 2013 года. [26]
Ява ЮВ 5
Выпуск от 30 сентября 2004 г. первоначально имел номер 1.5, который до сих пор используется в качестве внутреннего номера версии. Число было изменено, чтобы «лучше отражать уровень зрелости, стабильности, масштабируемости и безопасности J2SE». [27] Эта версия была разработана в соответствии с JSR 176.
Период окончания общедоступных обновлений Java SE 5 вступил в силу 8 апреля 2008 г.; обновления больше не доступны для общественности с 3 ноября 2009 г. Обновления были доступны платным клиентам Oracle до мая 2015 г. [3]
Tiger добавил ряд важных новых языковых функций: [28] [29]
- Обобщения : обеспечивают (статическую) безопасность типов во время компиляции для коллекций и устраняют необходимость в большинстве приведения типов (преобразование типов) (определено JSR 14).
- Метаданные : также называемые аннотациями ; позволяет помечать языковые конструкции, такие как классы и методы, дополнительными данными, которые затем могут обрабатываться утилитами, поддерживающими метаданные (определенными в JSR 175).
- Автоупаковка /распаковка: автоматическое преобразование между примитивными типами (например
int
, ) и примитивными классами-оболочками (например, Integer
) (определено JSR 201). - Перечисления :
enum
ключевое слово создает типобезопасный упорядоченный список значений (например Day.MONDAY
, Day.TUESDAY
, и т. д.); ранее этого можно было достичь только с помощью нетипобезопасных целых чисел или созданных вручную классов (типобезопасный шаблон перечисления) (определенный в JSR 201). - Varargs : последний параметр метода теперь можно объявить, используя имя типа, за которым следуют три точки (например,
void drawtext(String... lines)
); в вызывающем коде можно использовать любое количество параметров этого типа, а затем они помещаются в массив для передачи методу, или, альтернативно, вызывающий код может передавать массив этого типа - Расширенный
for each
цикл: for
синтаксис цикла расширен специальным синтаксисом для перебора каждого члена массива или любого элемента Iterable
, например стандартных Collection
классов (указанных в JSR 201). - Улучшена семантика выполнения многопоточных Java-программ; новая модель памяти Java решает проблемы сложности, эффективности и производительности предыдущих спецификаций [30]
- Статический импорт
Также были внесены следующие улучшения в стандартные библиотеки:
Java 5 — последняя версия Java, официально поддерживающая Microsoft Windows 98 и Windows ME , [32] тогда как Windows Vista была новейшей версией Windows, в которой поддерживалась Java SE 5 до прекращения поддержки Java 5 в октябре 2019 года. 2009. [26]
Java 5 Update 5 (1.5.0_05) — последняя версия Java, работающая в Windows 95 (с установленным Internet Explorer 5.5 ) и Windows NT 4.0 . [33]
Java 5 впервые была доступна в Apple Mac OS X 10.4 (Tiger) [34] и являлась версией Java по умолчанию, установленной в Apple Mac OS X 10.5 (Leopard).
Публичная поддержка и обновления безопасности для Java 1.5 закончились в ноябре 2009 года. Платные обновления безопасности для клиентов Oracle закончились в апреле 2015 года.
Изменение версий
В этой версии представлена новая система управления версиями для языка Java, хотя старая система управления версиями продолжает использоваться для библиотек разработчиков:
Оба номера версий «1.5.0» и «5.0» используются для идентификации этого выпуска стандартной версии платформы Java 2. Версия «5.0» — это версия продукта, а «1.5.0» — версия для разработчиков. Число «5.0» используется для лучшего отражения уровня зрелости, стабильности, масштабируемости и безопасности J2SE.
- «Версия 1.5.0 или 5.0?», примечания к выпуску Java [35]
Эта переписка продолжалась и в более поздних выпусках (Java 6 = JDK 1.6, Java 7 = JDK 1.7 и т. д.).
Ява ЮВ 6
В версии, выпущенной 11 декабря 2006 г., Sun заменила название «J2SE» на Java SE и исключила «.0» из номера версии. [36] Внутренняя нумерация для разработчиков остается 1.6.0. [37]
Эта версия была разработана под JSR 270.
На этапе разработки новые сборки, включая улучшения и исправления ошибок, выпускались примерно еженедельно. Бета-версии были выпущены в феврале и июне 2006 года, а финальный выпуск состоялся 11 декабря 2006 года.
Основные изменения, включенные в эту версию: [38] [39]
- Поддержка старых версий Win9x прекращена; неофициально, Java 6 Update 7 была последней версией Java, которая работала в этих версиях Windows. [ нужна цитата ] В это верят [ кем? ] связано с серьезными изменениями в обновлении 10.
- Поддержка языка сценариев ( JSR 223 ): универсальный API для тесной интеграции с языками сценариев и встроенная интеграция Mozilla JavaScript Rhino .
- Значительное улучшение производительности базовой платформы [40] [41] и Swing .
- Улучшена поддержка веб-служб через JAX-WS ( JSR 224 ).
- Поддержка JDBC 4.0 ( JSR 221 ).
- API компилятора Java ( JSR 199 ): API, позволяющий программе Java программно выбирать и вызывать компилятор Java.
- Обновление JAXB до версии 2.0: включая интеграцию парсера StAX .
- Поддержка подключаемых аннотаций ( JSR 269 ). [42]
- Многие улучшения графического интерфейса , такие как интеграция SwingWorker в API, сортировка и фильтрация таблиц, а также настоящая двойная буферизация Swing (устранение эффекта серой зоны).
- Улучшения JVM включают в себя: оптимизацию синхронизации и производительности компилятора , новые алгоритмы и обновления существующих алгоритмов сборки мусора , а также повышение производительности запуска приложений.
Java 6 можно установить в Mac OS X 10.5 (Leopard), работающую на компьютерах с 64-разрядными процессорами (Core 2 Duo и выше). [43] Java 6 также поддерживается как 32-битными, так и 64-битными компьютерами под управлением Mac OS X 10.6 (Snow Leopard).
Срок поддержки Java 6 закончился в феврале 2013 года, когда все общедоступные обновления, включая обновления безопасности, должны были быть остановлены. [44] [45] В марте и апреле 2013 года Oracle выпустила еще два обновления для Java 6, которые исправили некоторые уязвимости безопасности. [46] [47]
Обновления Java 6
После выпуска Java 6 компания Sun, а затем и Oracle, выпустила несколько обновлений, которые, не меняя общедоступных API, повысили удобство использования конечными пользователями или исправили ошибки. [48]
Ява ЮВ 7
Java 7 представляла собой крупное обновление, выпущенное 7 июля 2011 г. [86] и доступное для разработчиков 28 июля 2011 г. [87] Период разработки был разделен на тринадцать этапов; 6 июня 2011 года был завершен последний из тринадцати этапов. [87] [88] В среднем на каждом этапе выпускалось 8 сборок (которые обычно включали улучшения и исправления ошибок). В списке функций проекта OpenJDK 7 перечислены многие изменения.
Дополнения в Java 7 включают: [89]
- Поддержка JVM для динамических языков с новым
invokedynamic
байт-кодом JSR-292, [90] после работы по прототипированию, выполняемой в настоящее время на многоязычной виртуальной машине. - Сжатые 64-битные указатели [91] (доступны в Java 6 с
-XX:+UseCompressedOops
) [92] - Эти небольшие изменения языка (сгруппированные в рамках проекта Coin): [93]
- Струны в переключателе [94]
- Автоматическое управление ресурсами в операторе try, также известном как оператор try-with-resources [95]
- Улучшенный вывод типа для создания общего экземпляра, также известный как оператор алмаза
<>
[96] - Упрощенное объявление метода varargs [97]
- Двоичные целочисленные литералы [98]
- Разрешение подчеркивания в числовых литералах [99]
- Перехват нескольких типов исключений и повторное создание исключений с улучшенной проверкой типов [100]
- Утилиты параллелизма в соответствии с JSR 166 [101]
- Новая библиотека файлового ввода-вывода (определенная JSR 203), добавляющая поддержку нескольких файловых систем, метаданных файлов и символических ссылок. Новые пакеты
java.nio.file
: java.nio.file.attribute
и java.nio.file.spi
[102] [103] - Timsort используется для сортировки коллекций и массивов объектов вместо сортировки слиянием.
- Поддержка на уровне библиотеки алгоритмов шифрования эллиптических кривых.
- Конвейер XRender для Java 2D, который улучшает обработку функций, характерных для современных графических процессоров .
- Новые API платформы для графических функций, первоначально реализованные в версии 6u10 как неподдерживаемые API [104]
- Расширенная поддержка на уровне библиотеки новых сетевых протоколов, включая SCTP и Sockets Direct Protocol.
- Восходящие обновления XML и Unicode
- Наборы правил развертывания Java [105]
Lambda (реализация лямбда-функций в Java ), Jigsaw (реализация модулей в Java ) и часть Coin были исключены из Java 7 и выпущены как часть Java 8 (за исключением Jigsaw , которая была выпущена в Java 9). [106] [107]
Java 7 была версией по умолчанию для загрузки на java.com с апреля 2012 года до выпуска Java 8. [108]
Обновления Java 7
Oracle выпускала публичные обновления семейства Java 7 ежеквартально [109] до апреля 2015 года, когда общедоступная доступность продукта подошла к концу. [110] Дальнейшие обновления для JDK 7, которые продолжались до июля 2022 г., доступны только клиентам, заключившим контракт на поддержку. [111]
Ява ЮВ 8
Java 8 была выпущена 18 марта 2014 года [147] [148] и включала некоторые функции, которые были запланированы для Java 7, но позже были отложены. [149]
Работа над функциями была организована в рамках JDK Enhancement Proposals (JEP) . [150]
- JSR 335, JEP 126: поддержка на уровне языка лямбда-выражений (официально — лямбда-выражения; неофициально — замыканий ) в рамках Project Lambda [151] и методов по умолчанию ( методы виртуального расширения ) [152] [153] [154] , которые можно использовать. добавлять методы к интерфейсам, не нарушая существующие реализации. В сообществе Java продолжались дебаты о том, добавлять ли поддержку лямбда-выражений. [155] [156] Позже Sun заявила, что лямбда-выражения будут включены в Java, и попросила сообщество внести свой вклад в усовершенствование этой функции. [157] Поддержка лямбда-выражений также позволяет выполнять функциональные операции над потоками элементов, такие как преобразования на основе MapReduce в коллекциях. Методы по умолчанию могут использоваться автором API для добавления новых методов в интерфейс, не нарушая при этом старый код. Хотя это не было их основной целью, [152] методы по умолчанию также могут использоваться для множественного наследования поведения (но не состояния).
- JEP 174: Project Nashorn, среда выполнения JavaScript, которая может запускать код JavaScript, встроенный в приложения.
- JEP 104: Аннотация к типам Java
- Целочисленная арифметика без знака [158]
- JEP 120: Повторяющиеся аннотации
- JEP 150: API даты и времени
- JEP 178: Статически связанные библиотеки JNI.
- JEP 153: Запуск приложений JavaFX (прямой запуск JAR-файлов приложений JavaFX)
- JEP 122: Удалить постоянное поколение
Java 8 не поддерживается в Windows XP [159] , но, начиная с обновления 25 JDK 8, ее все еще можно установить и запустить под Windows XP. [160] Предыдущие обновления JDK 8 можно было запустить под XP, загрузив заархивированный файл формата zip и разархивировав его для получения исполняемого файла. Последней версией Java 8, которую можно было запустить на XP, является обновление 251. Но совместимость его компонентов начинает нарушаться на неподдерживаемых ОС. в ранней сборке во время разработки обновлений Java 8. [ нужна цитата ]
С октября 2014 года Java 8 была версией по умолчанию для загрузки (а затем снова загрузкой, заменяющей Java 9) с официального сайта. [161] «Oracle продолжит предоставлять общедоступные обновления и автоматические обновления Java SE 8 на неопределенный срок для личных пользователей». [162]
Обновления Java 8
Ява ЮВ 9
Java SE 9 стала доступна 21 сентября 2017 г. [238] из-за неоднозначного принятия текущей реализации Project Jigsaw Исполнительным комитетом Java [239] , что побудило Oracle исправить некоторые открытые проблемы и проблемы, а также уточнить некоторые важные технические вопросы. В последние дни июня 2017 года Java Community Process выразила почти единогласное мнение по предложенной схеме модульной системы. [240]
- JSR 376: Модуляризация JDK в рамках Project Jigsaw ( Система модулей платформы Java ) [107]
- JavaDB была удалена из JDK [241]
- JEP 193: Дескрипторы переменных определяют стандартные средства вызова эквивалентов различных операций
java.util.concurrent.atomic
и .sun.misc.Unsafe
- JEP 213: Milling Project Coin, разрешить @SafeVarargs для методов частного экземпляра; Разрешить использование переменных effect-final в качестве ресурсов в операторе try-with-resources; Разрешить ромб с анонимными классами, если тип аргумента выведенного типа является обозначаемым; Завершить удаление подчеркивания из набора допустимых имен идентификаторов, начатое в Java SE 8; Поддержка частных методов в интерфейсах.
- JEP 222: jshell: оболочка Java (цикл чтения-оценки-печати): JShell — это интерфейс командной строки REPL для языка Java. [242]
- JEP 254: Компактные струны
- JEP 263: Графика HiDPI: автоматическое масштабирование и изменение размера.
- JEP 266: больше обновлений параллелизма, он включает Java-реализацию Reactive Streams , [243] включая новый
Flow
класс [244] , включающий интерфейсы, ранее предоставляемые Reactive Streams [245] - JEP 268: XML-каталоги
- JEP 282: jlink: Java Linker, создайте инструмент, который может собирать и оптимизировать набор модулей и их зависимостей в пользовательский образ времени выполнения. Это эффективно позволяет создавать полностью пригодный к использованию исполняемый файл, включая JVM для его запуска.
- JEP 295: Предварительная компиляция, предварительная компиляция, предоставляемая GraalVM.
Первый кандидат на выпуск Java 9 был выпущен 9 августа 2017 года. [246] Первый стабильный выпуск Java 9 вышел 21 сентября 2017 года. [247]
История
На JavaOne 2011 компания Oracle обсуждала функции, которые они надеялись выпустить для Java 9 в 2016 году. [248] Java 9 должна включать лучшую поддержку многогигабайтных куч, лучшую интеграцию собственного кода, другой сборщик мусора по умолчанию ( G1 , для «более короткого времени отклика»). ") [249] и самонастраивающуюся JVM. [250] В начале 2016 года выпуск Java 9 был перенесен на март 2017 года [251] , а позже снова перенесен еще на четыре месяца, до июля 2017 года. [252]
Обновления Java 9
Ява ЮВ 10
OpenJDK 10 был выпущен 20 марта 2018 года и подтвердил двенадцать новых функций. [258] Среди этих особенностей были:
- JEP 286: Вывод типа локальной переменной
- JEP 296: объединение леса JDK в единый репозиторий
- JEP 304: Интерфейс сборщика мусора
- JEP 307: Параллельный полный сборщик мусора для G1
- JEP 310: Совместное использование данных классов приложений
- JEP 312: локальные рукопожатия потока
- JEP 313: удалить инструмент создания собственного заголовка (javah)
- JEP 314: Дополнительные расширения языковых тегов Юникода
- JEP 316: Распределение кучи на альтернативных устройствах памяти
- JEP 317: Экспериментальный JIT-компилятор на основе Java
- JEP 319: Корневые сертификаты
- JEP 322: Управление версиями выпуска на основе времени
Первый из них JEP 286 « Вывод типа локальной переменной» позволяет var
использовать ключевое слово для локальных переменных с фактическим типом, рассчитанным компилятором. Итак, мы можем сделать:
список вар = новый ArrayList <String> ( ) ; // выводит ArrayList<String> varstream = list . транслировать (); // выводит Stream<String>
Обновления Java 10
Ява ЮВ 11
JDK 11 был выпущен 25 сентября 2018 г., и в настоящее время в этой версии исправлены ошибки. Он предлагает LTS или долгосрочную поддержку . Среди прочего, Java 11 включает в себя ряд новых функций, таких как: [264]
- JEP 181: Контроль доступа на основе гнезда
- JEP 309: Динамические константы файла класса
- JEP 315: Улучшение встроенных функций Aarch64
- JEP 318: Эпсилон: бездействующий сборщик мусора
- JEP 320: удаление модулей Java EE и CORBA
- JEP 321: HTTP-клиент (стандартный)
- JEP 323: Синтаксис локальных переменных для лямбда-параметров
- JEP 324: Ключевое соглашение с Curve25519 и Curve448
- JEP 327: Юникод 10
- JEP 328: Бортовой самописец
- JEP 329: Криптографические алгоритмы ChaCha20 и Poly1305
- JEP 330: Запуск программ с однофайловым исходным кодом
- JEP 331: Профилирование кучи с низкими издержками
- JEP 332: Безопасность транспортного уровня (TLS) 1.3
- JEP 333: ZGC: масштабируемый сборщик мусора с малой задержкой (экспериментальный)
- JEP 335: прекращение поддержки JavaScript-движка Nashorn
- JEP 336: устарели инструменты и API Pack200
Ряд функций из предыдущих выпусков был удален; в частности, Java-апплеты и Java Web Start больше недоступны. Модули JavaFX , Java EE и CORBA были удалены из JDK. [265]
Обновления Java 11
Ява ЮВ 12
JDK 12 был выпущен 19 марта 2019 года. Помимо прочего, Java 12 включает в себя ряд новых функций, таких как: [312]
- JEP 189: Шенандоа: сборщик мусора с малой паузой (экспериментальный)
- JEP 230: Пакет микробенчмарков
- JEP 325: выражения переключения (предварительная версия)
- JEP 334: API констант JVM
- JEP 340: один порт AArch64, а не два
- JEP 341: Архивы CDS по умолчанию
- JEP 344: Прерываемые смешанные коллекции для G1
- JEP 346: Немедленно вернуть неиспользованную выделенную память из G1
Функция предварительного просмотра JEP 325 расширяет switch
оператор, поэтому его также можно использовать в качестве выражения, и добавляет новую форму метки регистра, где правая часть является выражением. Никакого оператора прерывания не требуется. Для сложных выражений yield
можно использовать оператор. Это становится стандартом в Java SE 14.
int ndays = переключатель ( месяц ) { case ЯНВАРЬ , МАРТ , МАЙ , ИЮЛЬ , АВГУГ , ОКТЯБРЬ , ДЕКАБРЬ -> 31 ; случай АПР , ИЮНЬ , СЕНТ , НОЯ -> 30 ; случай FEB -> { if ( год % 400 == 0 ) выход 29 ; иначе, если ( год % 100 == 0 ) доходность 28 ; иначе , если ( год % 4 == 0 ) выход 29 ; иначе получим 28 ; } };
Обновления Java 12
Ява ЮВ 13
JDK 13 был выпущен 17 сентября 2019 года. Java 13 включает следующие новые функции, а также «сотни мелких улучшений и тысячи исправлений ошибок». [318]
- JEP 350: Динамические архивы CDS
- JEP 351: ZGC: освободить неиспользуемую память
- JEP 353: переопределить API устаревших сокетов
- JEP 354: выражения переключения (предварительная версия)
- JEP 355: текстовые блоки (предварительная версия)
Текстовые блоки JEP 355 допускают многострочные строковые литералы:
String html = """ <html lang="en"> <body> <p>Привет, мир</p> </body> </html> """ ;
Обновления Java 13
Ява ЮВ 14
JDK 14 был выпущен 17 марта 2020 года. Java 14 включает следующие новые функции, а также «сотни мелких улучшений и тысячи исправлений ошибок». [323]
- JEP 305: Сопоставление с образцом для экземпляра (предварительная версия)
- JEP 343: Инструмент для упаковки (инкубатор)
- JEP 345: Распределение памяти с учетом NUMA для G1
- JEP 349: Потоковая передача событий JFR
- JEP 352: Энергонезависимые отображаемые байтовые буферы
- JEP 358: полезные исключения NullPointerException
- JEP 359: Записи (предварительный просмотр)
- JEP 361: выражения переключения (стандартные)
- JEP 362: устарели порты Solaris и SPARC
- JEP 363: удаление сборщика мусора Concurrent Mark Sweep (CMS)
- JEP 364: ZGC на macOS
- JEP 365: ZGC в Windows
- JEP 366: устарела комбинация ParallelScavenge + SerialOld GC
- JEP 367: удаление инструментов и API Pack200
- JEP 368: текстовые блоки (второй предварительный просмотр)
- JEP 370: API доступа к внешней памяти (инкубатор)
JEP 305, сопоставление с образцом, например, exampleof, упрощает общий случай, когда за instanceof
тестом сразу следует приведение, заменяя
if ( obj instanceof String ) { String s = ( String ) obj ; Система . вне . println ( s.length ( ) ); }
с
if ( obj instanceof String s ) { System . вне . println ( s.length ( ) ); }
JEP 359 Records позволяет легко создавать простые неизменяемые классы, подобные Tuple . [324]
запись Point ( int x , int y ) { } Point p = новая точка ( 3 , 4 ); Система . вне . println ( p . x ());
Обновления Java 14
Ява SE 15
JDK 15 был выпущен 15 сентября 2020 года. В Java 15 добавлена, например, поддержка многострочных строковых литералов (также известных как текстовые блоки). Сборщики мусора Shenandoah и Z (последние иногда обозначаются сокращенно ZGC) теперь готовы к использованию в производстве (т.е. больше не помечены как экспериментальные). Поддержка операционной системы Oracle Solaris (и процессоров SPARC) прекращена (хотя она все еще доступна, например, в Java 11). Механизм JavaScript Nashorn удален. Также удалены некоторые корневые сертификаты CA.
- JEP 339: Алгоритм цифровой подписи Эдвардса (EdDSA)
- JEP 360: запечатанные классы (предварительная версия)
- JEP 371: Скрытые классы
- JEP 372: удаление JavaScript-движка Nashorn
- JEP 373: переопределить устаревший API DatagramSocket
- JEP 374: отключение и прекращение поддержки смещенной блокировки
- JEP 375: Сопоставление с образцом для экземпляра (вторая предварительная версия)
- JEP 377: ZGC: масштабируемый сборщик мусора с малой задержкой
- JEP 378: Текстовые блоки
- JEP 379: Шенандоа: сборщик мусора с малой паузой
- JEP 381: удалите порты Solaris и SPARC
- JEP 383: API доступа к внешней памяти (второй инкубатор)
- JEP 384: Отчеты (второй предварительный просмотр)
- JEP 385: Устаревшая активация RMI для удаления
Запечатанные классы JEP 360 добавляют запечатанные классы и интерфейсы, которые ограничивают то, какие другие классы или интерфейсы могут расширять или реализовывать их. Только классы, указанные в permits
предложении, могут расширять класс или интерфейс.
пакет com.example.geometry ; общедоступный абстрактный запечатанный класс Форма разрешает Circle , Rectangle , Square {...}
Вместе с записями запечатанные классы являются типами сумм . Они хорошо работают с другими новыми функциями, такими как записи, выражения переключения и сопоставление с образцом, например. Все они являются частью системы «Сопоставление шаблонов в Java», впервые обсуждавшейся Гэвином Бирманом и Брайаном Гетцем в сентябре 2018 года. [330]
Обновления Java 15
Ява SE 16
JDK 16 был выпущен 16 марта 2021 года. В Java 16 удалены параметры предварительной компиляции (и Graal JIT ). [336] Сама реализация Java была и до сих пор пишется на C++ , тогда как, начиная с Java 16, разрешен более поздний C++14 (но все же не, например, C++17 или C++20 ). Код также был перенесен на GitHub , отказавшись от Mercurial в качестве системы контроля версий .
- JEP 338: Векторный API (инкубатор)
- JEP 347: включить возможности языка C++14
- JEP 357: переход с Mercurial на Git
- JEP 369: миграция на GitHub
- JEP 376: ZGC: параллельная обработка стека потоков
- JEP 380: Каналы сокетов домена Unix
- JEP 386: Порт Alpine Linux – еще нестабилен
- JEP 387: Эластичное метапространство
- JEP 388: порт Windows/AArch64
- JEP 389: API внешнего компоновщика (инкубатор)
- JEP 390: Предупреждения для классов, основанных на значениях
- JEP 392: Инструмент для упаковки
- JEP 393: API доступа к внешней памяти (третий инкубатор)
- JEP 394: Сопоставление с образцом для экземпляра
- JEP 395: Записи
- JEP 396: строгая инкапсуляция внутренних компонентов JDK по умолчанию
- JEP 397: Запечатанные классы (вторая предварительная версия)
Обновления Java 16
Ява ЮВ 17
JDK 17 был выпущен в сентябре 2021 года. [342] Java 17 — это второй выпуск с долгосрочной поддержкой (LTS) с момента перехода на новый шестимесячный график выпуска (первым был Java 11).
- JEP 306: восстановить всегда строгую семантику с плавающей запятой
- JEP 356: Расширенные генераторы псевдослучайных чисел
- JEP 382: новый конвейер рендеринга macOS
- JEP 391: порт macOS/AArch64
- JEP 398: объявить устаревшим API апплета для удаления
- JEP 403: строгая инкапсуляция внутренних компонентов JDK
- JEP 406: Сопоставление шаблонов для переключателя (предварительная версия)
- JEP 407: удалить активацию RMI
- JEP 409: Запечатанные классы
- JEP 410: удаление экспериментального AOT и JIT-компилятора
- JEP 411: объявить устаревшим диспетчер безопасности для удаления
- JEP 412: API внешних функций и памяти (инкубатор)
- JEP 414: Vector API (второй инкубатор)
- JEP 415: Контекстно-зависимые фильтры десериализации
JEP 406 расширяет синтаксис сопоставления с образцом, используемый в операциях экземпляра, для переключения операторов и выражений. Он позволяет выбирать случаи на основе типа аргумента, нулевых случаев и уточняющих шаблонов.
Объект о = ...; возвратный переключатель ( o ) { case null -> «Null» ; случай String s -> String . формат ( «Строка %s» , s ); регистр Long l -> String . формат ( «длинный %d» , l ); случай Double d -> String . формат ( «двойной %f» , d ); case Integer i && i > 0 // уточнение шаблонов -> String . format ( "positive int %d" , i ); case Integer i && i == 0 -> String . формат ( «ноль int %d» , я ); case Integer i && i < 0 -> String . формат ( «отрицательный int %d» , я ); по умолчанию -> о . нанизывать (); }; };
Обновления Java 17
Ява SE 18
JDK 18 был выпущен 22 марта 2022 года. [367]
- JEP 400: UTF-8 по умолчанию
- JEP 408: Простой веб-сервер
- JEP 413: фрагменты кода в документации Java API
- JEP 416: переопределить базовое отражение с помощью дескрипторов методов
- JEP 417: Vector API (Третий инкубатор)
- JEP 418: SPI разрешения интернет-адресов
- JEP 419: API внешних функций и памяти (второй инкубатор)
- JEP 420: Сопоставление шаблонов для коммутатора (вторая предварительная версия)
- JEP 421: Устаревшая финализация для удаления
Обновления Java 18
Ява SE 19
JDK 19 был выпущен 20 сентября 2022 года. [376]
- JEP 405: Шаблоны записи (предварительная версия)
- JEP 422: порт Linux/RISC-V
- JEP 424: API внешних функций и памяти (предварительная версия)
- JEP 425: виртуальные потоки (предварительная версия)
- JEP 426: Vector API (Четвертый инкубатор)
- JEP 427: Сопоставление шаблонов для переключателя (третья предварительная версия)
- JEP 428: Структурированный параллелизм (инкубатор)
JEP 405 позволяет использовать шаблоны записей, расширяя возможности сопоставления шаблонов операторов экземпляра и выражений переключения, включая шаблоны записей, которые явно ссылаются на компоненты записи.
запись Прямоугольник ( int x , int y , int w , int h ) {} int area ( Object o ) { if ( o instanceof Rectangle ( int x , int y , int w , int h )) { return w * h ; } вернуть 0 ; }
Такие шаблоны могут включать в себя вложенные шаблоны, в которых компоненты записей сами являются записями, что позволяет шаблонам сопоставлять большее количество графов объектов.
Обновления Java 19
Ява SE 20
Java 20 была выпущена 21 марта 2023 года. [382] Все JEP были либо инкубаторами, либо предварительными версиями.
- JEP 429: Ограниченные значения (инкубатор)
- JEP 432: Шаблоны записи (второй предварительный просмотр)
- JEP 433: Сопоставление шаблонов для переключателя (четвертая предварительная версия)
- JEP 434: API внешних функций и памяти (вторая предварительная версия)
- JEP 436: виртуальные потоки (второй предварительный просмотр)
- JEP 437: Структурированный параллелизм (второй инкубатор)
- JEP 438: Vector API (Пятый инкубатор)
Обновления Java 20
Ява ЮВ 21
Java 21 была выпущена 19 сентября 2023 года. [388] Существует восемь JEP, которые не находятся в предварительной версии или инкубации, по сравнению с Java 20, в которой были только предварительные и инкубационные JEP. В Java 21 представлены функции, впервые представленные в Java 17 (сопоставление шаблонов для операторов переключения ) и Java 19 (шаблоны записи). 32-битная версия Windows на платформе x86 устарела и подлежит удалению.
- JEP 430: Строковые шаблоны (предварительная версия)
- JEP 431: Последовательные коллекции
- JEP 439: Поколение ZGC
- JEP 440: Шаблоны записи
- JEP 441: Сопоставление шаблонов для переключателя
- JEP 442: API внешних функций и памяти (третья предварительная версия)
- JEP 443: Безымянные шаблоны и переменные (предварительная версия)
- JEP 444: Виртуальные потоки
- JEP 445: Безымянные классы и основные методы экземпляра (предварительная версия)
- JEP 446: ограниченные значения (предварительная версия)
- JEP 448: Vector API (Шестой инкубатор)
- JEP 449: запретить удаление 32-разрядного порта x86 для Windows
- JEP 451: приготовьтесь запретить динамическую загрузку агентов
- JEP 452: API механизма инкапсуляции ключей
- JEP 453: Структурированный параллелизм (предварительная версия)
JEP 445, предварительный просмотр безымянных классов, позволяет использовать простой основной класс без шаблонного кода:
пустая функция () { Система . вне . println ( "Привет, Мир!" );}
вместо :
общественный класс HelloWorld { public static void main ( String [] args ) { Система . вне . println ( "Привет, Мир!" ); }}
Обновления Java 21
Ява ЮВ 22
По состоянию на июнь 2023 года [update]спецификация Java 22 еще не доработана. Выпуск Java 22 запланирован на март 2024 года. [394]
Ява ЮВ 23
По состоянию на январь 2024 года [update]спецификация Java 23 еще не доработана. Выпуск Java 23 запланирован на сентябрь 2024 года. [395]
Будущие возможности
- Проект Валгалла: классы значений , объекты которых не имеют идентичности, но в некоторых случаях могут получить улучшенную структуру памяти (с меньшей косвенностью) или полностью оптимизировать их распределение.
- Проект Панама:
- Улучшена совместимость с собственным кодом , позволяющая исходному коду Java вызывать функции и использовать типы данных из других языков, что проще и обеспечивает лучшую производительность, чем сегодня (эта часть Project Panama стабилизируется в Java 22 в соответствии со стандартом JEP 454: API внешних функций и памяти).
- Vector API, портативный и относительно низкоуровневый уровень абстракции для SIMD- программирования. Его стабилизация зависит от проекта «Вальгалла».
- Project Lilliput: Уменьшите размер заголовков объектов Java. Сначала до 64 бит, а затем до 32 бит.
- Уменьшение времени запуска и времени прогрева (времени выхода на пиковую производительность) в режиме JIT:
- Проект CRaC позволяет делать снимки всей JVM (вместе с работающим приложением) и восстанавливать ее с необходимыми изменениями (переоткрытием файлов, сокетов и т. д.).
- Project Leyden, среди прочего, позволит частичную или (в долгосрочной перспективе) полную AOT-компиляцию, снижая общий динамизм (путем принятия так называемых «ограничений закрытого мира») и уменьшая накладные расходы на динамическую компиляцию.
Реализации
Официально поддерживаемой платформой Java , впервые разработанной в Sun и теперь управляемой Oracle, является Java SE . Релизы основаны на проекте OpenJDK — бесплатном проекте с открытым исходным кодом и открытой моделью разработки . Однако существуют и другие реализации Java — отчасти из-за ранней истории Java как проприетарного программного обеспечения . Напротив, некоторые реализации были созданы, чтобы предложить некоторые преимущества по сравнению со стандартной реализацией, часто в результате какой-либо области академических или корпоративных исследований. Многие дистрибутивы Linux включают сборки OpenJDK в рамках проекта IcedTea , запущенного Red Hat , который обеспечивает более простую среду сборки и интеграции .
Visual J++ и виртуальная машина Microsoft Java были созданы как несовместимые реализации. После иска Sun против Microsoft Microsoft отказалась от него и начала работу над платформой .NET . В 2021 году Microsoft начала распространять совместимую «Сборку Microsoft OpenJDK» сначала для Java 11, а затем и для Java 17. Их сборки поддерживают не только Windows, но также Linux и macOS .
Доступны и другие проприетарные реализации Java, такие как Zing от Azul . Azul предлагает сертифицированные сборки OpenJDK с открытым исходным кодом под названием Zulu.
До выпуска OpenJDK, хотя реализация Sun все еще была проприетарной, был создан проект GNU Classpath , чтобы предоставить бесплатную реализацию платформы Java с открытым исходным кодом. С момента выпуска JDK 7, когда OpenJDK стал официальной эталонной реализацией, первоначальная мотивация для проекта GNU Classpath практически полностью исчезла, и его последний выпуск состоялся в 2012 году.
Проект Apache Harmony был запущен незадолго до выпуска OpenJDK. После первоначального выпуска исходного кода Sun проект Harmony продолжил работу над предоставлением реализации под слабой лицензией , в отличие от защитной лицензии, выбранной для OpenJDK. Позже Google разработала Android и выпустила его под нестрогим лицензией. Android вобрал в себя части проекта Harmony, дополненные собственной виртуальной машиной Dalvik от Google и ART . С тех пор Apache Harmony вышел из эксплуатации, а Google заменил свои компоненты Harmony эквивалентными из OpenJDK.
И Jikes , и Jikes RVM представляют собой исследовательские проекты с открытым исходным кодом, разработанные IBM.
Существует несколько других реализаций, которые начинались как проприетарное программное обеспечение, но теперь имеют открытый исходный код. Первоначально IBM разработала OpenJ9 как проприетарную версию J9 [396] , но с тех пор повторно лицензировала проект и передала его в дар Eclipse Foundation . JRockit — это собственная реализация, приобретенная Oracle и включенная в последующие версии OpenJDK.
Рекомендации
- ^ Рейнхольд, Марк (6 сентября 2017 г.). «Быстрее продвигать Java вперед» . Проверено 16 сентября 2017 г.
- ^ «Призыв всех на борт в шестимесячном поезде по выпуску Java» . theserverside.com. 12 сентября 2017 г. Проверено 16 сентября 2017 г.
- ^ abc «Дорожная карта поддержки Oracle Java SE». www.oracle.com .
- ^ Смит, Дональд. «Представляем бесплатную лицензию Java».
- ^ Рейнхольд, Марк (17 августа 2018 г.). «Что означает LTS для OpenJDK?» . Проверено 28 августа 2018 г.
- ^ «Глава 4. Формат файла класса» .
- ^ abcdef «Жизненный цикл и политика поддержки Red Hat OpenJDK».
- ^ «Поддержка Oracle Java SE 6» .
- ^ abcdef «Дорожная карта Liberica JDK».
- ^ abcdef «Дорожная карта Azul JDK».
- ^ «Поддержка Oracle Java SE 7» .
- ^ abcd «Дорожная карта выпуска Eclipse Temurin».
- ^ abcd «Календарь поддержки Amazon Corretto» .
- ^ abcd «Дорожная карта поддержки Oracle Java SE (платная)» .
- ^ ab «Дорожная карта поддержки Oracle Java SE (бесплатно)» .
- ^ «JavaSoft выпускает Java 1.0» (пресс-релиз). Архивировано из оригинала 10 марта 2007 года . Проверено 5 февраля 2008 г.
- ^ аб Ортис, К. Энрике; Жигер, Эрик (2001). Профиль мобильного информационного устройства для Java 2 Micro Edition: Руководство разработчика . Джон Уайли и сыновья . ISBN 978-0471034650. Проверено 30 мая 2012 г.
- ^ Пресс-релиз версии 1.1, Sun.
- ↑ Теннант, Дон (15 марта 1997 г.). «Taligent готовит технологию интернационализации к большому успеху». Компьютерный мир . ИДГ . Проверено 16 января 2021 г.
- ^ Пресс-релиз версии 1.2, Sun.
- ^ Пресс-релиз версии 1.3, Sun.
- ^ «Полный список изменений версии 1.3» . Архивировано из оригинала 7 ноября 2006 года.
- ^ «Как запустить Java на компьютере с Windows 95?».
- ^ Пресс-релиз версии 1.4.
- ^ «Полный список изменений версии 1.4» . Архивировано из оригинала 8 января 2007 года.
- ^ ab «Платформа Java 2 5.0 и Java для бизнеса 5.0» . Корпорация Оракл . 2010 . Проверено 22 октября 2012 г.
- ^ «Версия 1.5.0 или 5.0?». Оракул.
- ^ Пресс-релиз версии 1.5.
- ^ Полный список изменений версии 1.5.
- ^ «JSR 133, 2.4 Почему эта потребность не удовлетворяется существующими спецификациями?». Оракул.
- ^ Гетц, Брайан (2006). Параллелизм Java на практике . Аддисон-Уэсли. п. XVIII. ISBN 0-321-34960-1.
- ^ «Java 5.0 больше не доступна на Java.com» . Java.com. 03.11.2009 . Проверено 30 сентября 2016 г.
- ^ Полузащитник, Натан. «Разное Windows 2 — страница поджаренных технологий Натана» . Проверено 30 сентября 2016 г.
- ↑ Янк, Кебин (3 мая 2005 г.). «Java 5 доступна для Mac OS X». Сайтпойнт . Проверено 30 сентября 2016 г.
- ^ «Версия 1.5.0 или 5.0?». Oracle.com . Проверено 18 апреля 2016 г.
- ^ Название бренда Java.
- ^ Версия 6, Веб-заметки Java, Sun.
- ^ Пресс-релиз версии 1.6.
- ^ Полный список изменений версии 1.6.
- ^ Java-лобби. Архивировано 13 октября 2008 г. в Wayback Machine .
- ^ "Горячая точка Мустанга" . Архивировано из оригинала 2 января 2007 года.
- ^ Дарси, Джо (3 августа 2008 г.). «Достойная замена» . Проверено 29 июля 2009 г.
- ^ «Установите Java 6 в Mac OS X Leopard | Gephi, программное обеспечение для визуализации графиков с открытым исходным кодом» . Gephi.org . Проверено 30 сентября 2016 г.
- ^ «Дорожная карта поддержки Oracle Java SE» . Корпорация Оракл . 19 сентября 2012 года . Проверено 22 октября 2012 г.
- ^ «Автоматическое обновление и обновление JRE 6 через панель управления Java заменит JRE 6 на JRE 7» . Корпорация Оракл . 19 февраля 2013 года . Проверено 2 марта 2013 г.
- ^ «Комплект разработки Java SE 6, обновление 43, примечания к выпуску» . Корпорация Оракл . 4 марта 2013 года . Проверено 4 марта 2013 г.
- ^ «Комплект разработки Java SE 6, обновление 45, примечания к выпуску» . Корпорация Оракл . 4 марта 2013 года . Проверено 4 марта 2013 г.
- ^ «Примечания к выпуску обновления Java SE 6» . www.oracle.com .
- ^ abc «Технологии Oracle Java | Oracle». www.oracle.com .
- ^ «Нимбус — Java.net». Архивировано из оригинала 20 августа 2011 года . Проверено 1 февраля 2020 г.
- ^ «Обновление 11 для Sun Java 6 уже доступно, ждем JavaFX» . FindMySoft.com . Проверено 13 ноября 2009 г.
- ^ Скромный, Чарльз (13 мая 2008 г.). «JavaOne: мусор прежде всего». infoq.com . Проверено 7 сентября 2008 г.
- ^ Трус, Дэни (12 ноября 2008 г.). «Java VM: пробуем новый сборщик мусора для JDK 7». Архивировано из оригинала 8 декабря 2011 г. Проверено 22 января 2012 г.
- ^ «Точки останова не срабатывают в JDK 1.6.0_14» . Проверено 14 июля 2009 г.
- ^ «Идентификатор ошибки: 6862295 Идентификатор потока JDWP изменяется во время сеанса отладки (что приводит к игнорированию точек останова)» . Проверено 22 июля 2009 г.
- ^ «Информация об обновлении критического исправления Oracle Java SE — июнь 2011 г.» . www.oracle.com .
- ^ «Рекомендация по обновлению критического исправления Oracle Java SE — октябрь 2011 г.» . www.oracle.com .
- ^ «Не удается установить обновление 32 для Java 6...» MSFN. Архивировано из оригинала 16 августа 2016 г. Проверено 31 июля 2016 г.
- ^ ab «Предупреждение безопасности Oracle для CVE-2012-4681». Корпорация Оракл .
- ^ «Рекомендация по обновлению критического исправления Oracle Java SE — апрель 2013 г.» . www.oracle.com .
- ^ «Почему мне следует обновлять Java?». java.com .
- ^ ab «Критическое обновление Oracle Java — июнь 2013 г.» . www.oracle.com .
- ^ ab «Обновление критического исправления Oracle — октябрь 2013 г.» . www.oracle.com .
- ^ ab «Обновление критического исправления Oracle — апрель 2014 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle — июль 2014 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle — октябрь 2014 г.» . www.oracle.com .
- ^ «Справочная реализация Java SE 6» . Корпорация Оракл . Проверено 24 октября 2016 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle — январь 2015 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle — апрель 2015 г.» . www.oracle.com .
- ^ «Рекомендации по обновлению критических исправлений Oracle – июль 2015 г.» . Проверено 15 июля 2015 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – октябрь 2015 г.» . Проверено 20 октября 2015 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – январь 2016 г.» . Проверено 20 января 2016 г.
- ^ ab «Предупреждение безопасности Oracle для CVE-2016-0603» . Проверено 8 февраля 2016 г.
- ^ «Обновление критического исправления Oracle CVSS V2 — матрицы рисков — апрель 2016 г.» . Проверено 21 апреля 2016 г.
- ^ ab «Рекомендации по обновлению критических исправлений Oracle – июль 2016 г.» . Проверено 19 июля 2016 г.
- ^ ab «Рекомендации по обновлению критических исправлений Oracle – октябрь 2016 г.» . Проверено 18 октября 2016 г.
- ^ ab «Рекомендации по обновлению критических исправлений Oracle – январь 2017 г.» . Проверено 17 января 2017 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – апрель 2017 г.» . Проверено 18 апреля 2017 г.
- ^ ab «Рекомендация по обновлению критических исправлений Oracle – июль 2017 г.» . Проверено 18 июля 2017 г.
- ^ ab «Рекомендация по обновлению критических исправлений Oracle – октябрь 2017 г.» . Проверено 20 октября 2017 г.
- ^ ab «Рекомендация по обновлению критических исправлений Oracle – январь 2018 г.» . Проверено 20 октября 2017 г.
- ^ ab «Рекомендации по обновлению критических исправлений Oracle – апрель 2018 г.» . Проверено 17 апреля 2018 г.
- ^ ab «Рекомендации по обновлению критических исправлений Oracle – июль 2018 г.» . Проверено 17 июля 2018 г.
- ^ ab «Рекомендации по обновлению критических исправлений Oracle – октябрь 2018 г.» . Проверено 18 октября 2018 г.
- ^ JDK7. Архивировано 15 декабря 2016 г. в Wayback Machine , вс.
- ^ «Представляем веб-трансляцию Java 7: продвижение Java вперед» . Корпорация Оракл . 7 июля 2011 года . Проверено 30 мая 2012 г.
- ^ ab "JDK 7". openjdk.java.net .
- ^ "7 этапов JDK" . OpenJDK . Корпорация Оракл . Проверено 30 мая 2012 г.
- ^ Миллер, Алекс. «Ява 7» . Проверено 5 февраля 2024 г.
- ^ «JSR 292: Поддержка динамически типизированных языков на платформе Java» . Проверено 25 августа 2013 г.
- ^ "Сжатые упс в JVM Hotspot" . OpenJDK . Проверено 1 августа 2012 г.
- ^ «Параметры виртуальной машины Java HotSpot» . Оракул . Проверено 11 апреля 2013 г.
- ^ «Усовершенствования языка программирования Java» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Строки в операторах переключателя» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Заявление о попытке с ресурсами» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Вывод типа для создания универсального экземпляра» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Улучшенные предупреждения компилятора при использовании непередаваемых формальных параметров с методами Varargs». Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Двоичные литералы». Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Подчеркивание в числовых литералах». Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Перехват нескольких типов исключений и повторное создание исключений с улучшенной проверкой типов». Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ "Параллелизм JSR-166" . Проверено 16 апреля 2010 г.
- ^ «Файловый ввод-вывод (с участием NIO.2)» . Java.sun.com. 14 марта 2008 г. Проверено 15 января 2013 г.
- ^ «Код ввода-вывода устаревшего файла» . Java.sun.com. 28 февраля 2012 г. Проверено 15 января 2013 г.
- ^ «Функции JDK 7» . OpenJDK. 28 июля 2011 г. Проверено 15 марта 2013 г.
- ^ «Представляем наборы правил развертывания» . Оракул. 21 августа 2013 г. Проверено 22 января 2019 г.
- ^ "Ключевой доклад JavaOne 2011" . Оракул. Архивировано из оригинала 26 октября 2011 г.
- ^ ab "Проект Пазл". OpenJDK.
«Системные требования к модулю Java — ПРОЕКТ 12». Оракул.
Крил, Пол (18 июля 2012 г.). «Проект Jigsaw отложен до Java 9». Инфомир . Проверено 15 июля 2020 г. - ^ «Автообновление Java 7 и Java 6» . Оракул.
- ^ В таблице критических обновлений исправлений показаны четыре даты в году.
- ^ «Конец общедоступных обновлений Java 7» .
После апреля 2015 года Oracle больше не будет публиковать обновления Java SE 7 на своих общедоступных сайтах загрузки. Существующие загрузки Java SE 7, уже опубликованные по состоянию на апрель 2015 г., останутся доступными в архиве Java в сети Oracle Technology Network. Разработчикам и конечным пользователям рекомендуется обновиться до более поздних версий Java SE, которые остаются доступными для общедоступной загрузки, чтобы продолжать получать общедоступные обновления и улучшения безопасности. [..] Июль 2015 г.: Обновления для Java 7 больше не доступны для общественности. Oracle предлагает обновления для Java 7 только для клиентов, которые приобрели поддержку Java или имеют продукты Oracle, требующие Java 7.
- ^ «Дорожная карта поддержки Oracle Java SE» . Корпорация Оракл. 19 декабря 2014 г. Проверено 7 января 2015 г.
- ^ «Примечания к выпуску JDK 7» . www.oracle.com .
- ^ «Рекомендация по обновлению критического исправления Oracle Java SE — февраль 2012 г.» . www.oracle.com .
- ^ «Рекомендация по обновлению критического исправления Oracle Java SE — июнь 2012 г.» . www.oracle.com .
- ^ «Выпущено обновление 6 для Java SE 7» . Архивировано из оригинала 27 октября 2012 года.
- ^ «Рекомендация по обновлению критического исправления Oracle Java SE — октябрь 2012 г.» . www.oracle.com .
- ^ «Предупреждение безопасности Oracle для CVE-2013-0422» . Корпорация Оракл .
- ^ «Информация об обновлении критического исправления Oracle Java SE — февраль 2013 г.» . www.oracle.com .
- ^ «Oracle выпускает исправления для 40 дыр в Java - The H Security: новости и возможности» . www.h-online.com .
- ^ «Пакет разработки Java SE 7, обновление 40 исправлений ошибок» . www.oracle.com .
- ^ «Выпущен Oracle JDK 7u40 — функции безопасности, фиксированный ARM, Java Mission Control и многое другое» . Архивировано из оригинала 2 октября 2013 года.
- ^ Oracle выпустит исправления для Java и других продуктов во вторник, ZDNet ,
- ^ «Обновление критического исправления Oracle — январь 2014 г.» . www.oracle.com .
- ^ «Пакет разработки Java SE 7, обновление 55 исправлений ошибок» . www.oracle.com .
- ^ «Примечания к выпуску Java Mission Control 5.3» . www.oracle.com .
- ^ «Пакет разработки Java SE 7, обновление 60, исправления ошибок» . www.oracle.com .
- ^ ab «Описание выпусков процессоров и блоков питания Java» . www.oracle.com .
- ^ «Рекомендации по обновлению критических исправлений Oracle — июль 2015 г.» . www.oracle.com .
- ^ «Рекомендации по обновлению критических исправлений Oracle — октябрь 2015 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle – январь 2016 г.» . www.oracle.com . Проверено 20 января 2016 г.
- ^ «Комплект разработки Java SE 7, обновление 99» . Проверено 23 марта 2016 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – апрель 2016 г.» . Проверено 18 апреля 2016 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – апрель 2017 г.» . Проверено 18 апреля 2017 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – январь 2019 г.» . Проверено 18 апреля 2019 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – апрель 2019 г.» . Проверено 18 апреля 2019 г.
- ^ «Информация об обновлении критических исправлений Oracle — июль 2019 г.» . Проверено 7 января 2020 г.
- ^ «Информация об обновлении критического исправления Oracle — октябрь 2019 г.» . Проверено 7 января 2020 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle — январь 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle — апрель 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle — июль 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle — октябрь 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Информация об обновлении критического исправления Oracle — январь 2021 г.» . Проверено 22 апреля 2021 г.
- ^ «Информация об обновлении критического исправления Oracle — апрель 2021 г.» . Проверено 22 апреля 2021 г.
- ^ «Примечания к выпуску обновлений JDK 7 и JDK 7» . Проверено 25 января 2022 г.
- ^ «Примечания к выпуску обновлений JDK 7 и JDK 7» . Проверено 25 января 2022 г.
- ^ «Примечания к выпуску обновлений JDK 7 и JDK 7» . Проверено 25 января 2022 г.
- ^ «Предлагаемое новое расписание для Java 8» . 18 апреля 2013 г. Проверено 19 апреля 2013 г.
- ^ "JDK 8" . OpenJDK. 18 апреля 2013 г. Проверено 28 января 2014 г.
- ^ «Функции JDK 8» . OpenJDK. 28 января 2014 г. Проверено 28 января 2014 г.
- ^ "JSR 337" . Проверено 30 января 2014 г.
- ^ «Функции Java 7» . Сан Микросистемс. 09 февраля 2010 г. Проверено 16 апреля 2010 г.
- ^ ab «Эволюция интерфейса с помощью методов виртуального расширения» (PDF) . Брайан Гетц. 20 июля 2011 г. Проверено 27 марта 2014 г.
- ^ «Лямбда-выражения для языка программирования Java». Брайан Гетц. 23 октября 2012 г. Проверено 27 марта 2014 г.
- ^ «Учебники по Java: методы по умолчанию». Оракул. Архивировано из оригинала 23 мая 2017 г. Проверено 27 марта 2014 г.
- ^ Гафтер, Нил (18 августа 2006 г.). «Замыкания для Java» . Проверено 9 марта 2008 г.
- ^ Гослинг, Джеймс (31 января 2008 г.). «Замыкания». Архивировано из оригинала 22 июля 2011 г. Проверено 9 марта 2008 г.
- ^ Рейнхольд, Марк (28 ноября 2009 г.). «Замыкания для Java» . Проверено 24 ноября 2009 г.
- ^ Дарси, Джо. «API беззнаковых целочисленных арифметических операций теперь в JDK 8». blogs.oracle.com .
- ^ «Сертифицированные системные конфигурации Oracle JDK 8 и JRE 8» . Корпорация Оракл . Проверено 15 апреля 2014 г.
- ^ Шталь, Хенрик (11 июля 2014 г.). «Обновлено: будущее Java в Windows XP». Корпорация Оракл . Архивировано из оригинала 11 ноября 2014 г. Проверено 11 ноября 2014 г.
JDK 8 не поддерживается в Windows XP. В ранних версиях JDK 8 были известны проблемы с установщиком в Windows XP, из-за которых его невозможно было установить без вмешательства вручную. Эта проблема была решена в обновлении 25 JDK 8. Важным моментом здесь является то, что мы больше не можем предоставлять полные гарантии для Java в Windows XP, поскольку Microsoft больше не обновляет эту ОС. Мы настоятельно рекомендуем пользователям перейти на более новую версию Windows, которая по-прежнему поддерживается Microsoft, чтобы обеспечить стабильную и безопасную среду.
- ↑ Вилдт, Тори (27 октября 2014 г.). «Java SE 8 на Java.com». blog.oracle.com . Архивировано из оригинала 29 ноября 2014 года . Проверено 24 ноября 2014 г.
- ^ «Дорожная карта поддержки Oracle Java SE» . Проверено 17 февраля 2021 г.
- ^ «Комплект разработки Java SE 8, обновление 5 (JDK 8u5)» . oracle.com . Проверено 28 апреля 2014 г.
- ^ «Комплект разработки Java SE 8, обновление 11 (JDK 8u11)» . oracle.com . Проверено 16 июля 2014 г.
- ^ «18 исправлений ошибок безопасности» . oracle.com . Проверено 16 июля 2014 г.
- ^ «Комплект разработки Java SE 8, обновление 20 (JDK 8u20)» . oracle.com . Проверено 27 августа 2014 г.
- ^ «Пакет разработки Java SE 8, обновление 20 исправлений ошибок» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 25 (JDK 8u25)» . oracle.com . Проверено 14 октября 2014 г.
- ^ «Комплект разработки Java SE 8, обновление 31 (JDK 8u31)» . oracle.com . Проверено 21 января 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 40 (JDK 8u40)» . oracle.com . Проверено 4 марта 2015 г.
- ^ «Пакет разработки Java SE 8, обновление 40 исправлений ошибок» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 45 (JDK 8u45)» . oracle.com . Проверено 15 апреля 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 51 (JDK 8u51)» . oracle.com . Проверено 14 июля 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 60 (JDK 8u60)» . oracle.com . Проверено 18 августа 2015 г.
- ^ «Пакет разработки Java SE 8, обновление 60, исправления ошибок» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 65 (JDK 8u65)» . oracle.com . Проверено 20 октября 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 66, примечания к выпуску» . oracle.com . Проверено 22 октября 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 71, примечания к выпуску» . oracle.com . Проверено 20 января 2015 г.
- ^ «Пакет разработки Java SE 8, обновление 71, исправление ошибок» . oracle.com . Проверено 20 января 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 72, примечания к выпуску» . oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 73, примечания к выпуску» . oracle.com . Проверено 6 февраля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 74, примечания к выпуску» . oracle.com . Проверено 6 февраля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 77, примечания к выпуску» . oracle.com . Проверено 23 марта 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 91, примечания к выпуску» . oracle.com . Проверено 23 марта 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 92, примечания к выпуску» . Проверено 23 марта 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 101, примечания к выпуску» . Проверено 19 июля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 102, примечания к выпуску» . Проверено 19 июля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 111, примечания к выпуску» . Проверено 19 октября 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 112, примечания к выпуску» . Проверено 19 октября 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 121, примечания к выпуску» . Проверено 17 января 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 131, примечания к выпуску» . www.oracle.com . Проверено 18 апреля 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 141, примечания к выпуску» . www.oracle.com . Проверено 18 июля 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 144, примечания к выпуску» . www.oracle.com . Проверено 26 июля 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 151, примечания к выпуску» . www.oracle.com . Проверено 19 октября 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 152, примечания к выпуску» . www.oracle.com . Проверено 19 октября 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 161, примечания к выпуску» . www.oracle.com . Проверено 18 января 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 162, примечания к выпуску» . www.oracle.com . Проверено 16 января 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 171, примечания к выпуску» . www.oracle.com . Проверено 17 апреля 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 172, примечания к выпуску» . www.oracle.com . Проверено 17 апреля 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 181, примечания к выпуску» . www.oracle.com . Проверено 20 июля 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 191, примечания к выпуску» . www.oracle.com . Проверено 16 октября 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 192, примечания к выпуску» . www.oracle.com . Проверено 16 октября 2018 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 201» . www.oracle.com . Проверено 16 января 2019 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 202» . www.oracle.com . Проверено 16 января 2019 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 211» . www.oracle.com . Проверено 16 апреля 2019 г.
- ^ ab «Комплект разработки Java SE 8, обновление 212, примечания к выпуску» . www.oracle.com . Проверено 16 апреля 2019 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 221» . www.oracle.com . Проверено 30 июля 2019 г.
- ^ «Комплект разработки Java SE 8, обновление 231, примечания к выпуску» . www.oracle.com . Проверено 16 октября 2019 г.
- ^ «Комплект разработки Java SE 8, обновление 241, примечания к выпуску» . www.oracle.com . Проверено 18 января 2020 г.
- ^ «Комплект разработки Java SE 8, обновление 251, примечания к выпуску» . www.oracle.com . Проверено 14 апреля 2020 г.
- ^ «Комплект разработки Java SE 8, обновление 261, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u261» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 271, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u271» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 281, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u281» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 291, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u291» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 301» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u301» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 311» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u311» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 321» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 321, исправления ошибок» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 331, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 331, исправления ошибок» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 333, примечания к выпуску» . www.oracle.com . Проверено 2 мая 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 333, исправления ошибок» . www.oracle.com . Проверено 2 мая 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 341» . www.oracle.com . Проверено 30 июля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 341, исправления ошибок» . www.oracle.com . Проверено 30 июля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 351, примечания к выпуску» . www.oracle.com . Проверено 18 октября 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 351, исправления ошибок» . www.oracle.com . Проверено 18 октября 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 361» . www.oracle.com . Проверено 24 марта 2023 г.
- ^ «Комплект разработки Java SE 8, обновление 371, примечания к выпуску» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 381» . www.oracle.com . Проверено 12 сентября 2023 г.
- ^ «Комплект разработки Java SE 8, обновление 391, примечания к выпуску» . www.oracle.com . Проверено 15 ноября 2023 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 401» . www.oracle.com .
- ^ "JDK 9" . Проверено 16 июня 2017 г.
- ^ «Спецификация модульности Java, против которой выступает Red Hat, IBM отклонена» . Инфомир . 09.05.2017 . Проверено 16 июня 2017 г.
- ↑ Чиргвин, Ричард (2 июля 2017 г.). «Выпуск Java 9 возвращается в нужное русло, сообщество голосует «за»». theregister.co.uk . Проверено 29 июля 2017 г.
- ^ «Платформа Java, Руководство по миграции на Oracle JDK 9 Standard Edition» . docs.oracle.com . Проверено 15 мая 2018 г.
- ^ «OpenJDK: Проект Кулла» .
- ^ Леа, Дуг (15 января 2015 г.). «[concurrency-interest] jdk9 Классы-кандидаты Flow и Submission Publisher». Архивировано из оригинала 20 января 2015 года . Проверено 24 декабря 2015 г.
- ^ «Поток (Java SE 9 и JDK 9)» . docs.oracle.com .
- ^ Reactive Streams выпускает первую стабильную версию для JVM
- ^ «JDK 9: первый выпуск-кандидат» . 09.08.2017 . Проверено 21 августа 2017 г.
- ^ «Java 9: дата выпуска и новые функции» . techworld.com. 21 июля 2017 г. Архивировано из оригинала 07.12.2017 . Проверено 16 сентября 2017 г.
«ДжДК 9». Корпорация Оракл . Проверено 16 сентября 2017 г. - ^ «Отметьте свой календарь: у Java 9 наконец-то есть дата выпуска» . 07.05.2015.
- ^ «Новый сборщик мусора в Java 9: что меняется? Что остается?». 26 июня 2015 г.
- ^ «JavaOne: JavaFX 2, Java для iOS» .
- ^ «Дата выпуска Java 9 — март 2017 г.» . 05.01.2016.
- ^ «Выпуск JDK 9 отложен еще на четыре месяца» . Регистр . Проверено 14 октября 2016 г.
- ^ «Примечания к выпуску JDK 9» . oracle.com. 21 сентября 2017 г.
- ^ «Примечания к выпуску JDK 9.0.1» . oracle.com. 17 октября 2017 г.
- ^ «Исправления ошибок JDK 9.0.1» . oracle.com . 17 октября 2017 г.
- ^ «Примечания к выпуску JDK 9.0.4» . oracle.com. 16 января 2018 г.
- ^ «Исправления ошибок JDK 9.0.4» . oracle.com . 16 января 2018 г.
- ^ OpenJDK. «ДжДК 10».
- ^ «Примечания к выпуску JDK 10» . oracle.com. 20 марта 2018 г.
- ^ «Примечания к выпуску JDK 10.0.1» . oracle.com. 17 апреля 2018 г.
- ^ «Исправления ошибок JDK 10.0.1» . oracle.com. 17 апреля 2018 г.
- ^ «Примечания к выпуску JDK 10.0.2» . oracle.com. 17 июля 2018 г.
- ^ «Исправления ошибок JDK 10.0.2» . oracle.com. 17 июля 2018 г.
- ^ OpenJDK. «ДжДК 11».
- ^ «Руководство по миграции Oracle JDK» . Справочный центр Oracle . Проверено 27 сентября 2018 г.
- ^ "JDK 11" . oracle.com. 25 сентября 2018 г.
- ^ «Примечания к выпуску JDK 11.0.1» . oracle.com. 16.10.2018.
- ^ «Исправления ошибок JDK 11.0.1» . oracle.com . 16.10.2018.
- ^ «Примечания к выпуску JDK 11.0.2» . oracle.com. 15 января 2019 г.
- ^ «Исправления ошибок JDK 11.0.2» . oracle.com . 15 января 2019 г.
- ^ «Примечания к выпуску JDK 11.0.3» . oracle.com. 16 апреля 2019 г.
- ^ «Исправления ошибок JDK 11.0.3» . oracle.com . 16 апреля 2019 г.
- ^ «Примечания к выпуску JDK 11.0.4» . oracle.com. 16 июля 2019 г.
- ^ «Исправления ошибок JDK 11.0.4» . oracle.com . 16 июля 2019 г.
- ^ «Примечания к выпуску JDK 11.0.5» . oracle.com. 15.10.2019.
- ^ «Исправления ошибок JDK 11.0.5» . oracle.com . 15.10.2019.
- ^ «Примечания к выпуску JDK 11.0.6» . oracle.com. 14 января 2020 г.
- ^ «Исправления ошибок JDK 11.0.6» . oracle.com . 14 января 2020 г.
- ^ «Примечания к выпуску JDK 11.0.7» . oracle.com. 14 апреля 2020 г.
- ^ «Исправления ошибок JDK 11.0.7» . oracle.com . 14 апреля 2020 г.
- ^ «Примечания к выпуску JDK 11.0.8» . oracle.com . 14 июля 2020 г.
- ^ «Исправления ошибок JDK 11.0.8» . oracle.com . 14 июля 2020 г.
- ^ «Примечания к выпуску JDK 11.0.9» . oracle.com . 20.10.2020.
- ^ «Исправления ошибок JDK 11.0.9» . oracle.com . 20.10.2020.
- ^ «Примечания к выпуску JDK 11.0.10» . oracle.com . 19 января 2021 г.
- ^ «Исправления ошибок JDK 11.0.10» . oracle.com . 19 января 2021 г.
- ^ «Примечания к выпуску JDK 11.0.11» . oracle.com . 20 апреля 2021 г.
- ^ «Исправления ошибок JDK 11.0.11» . oracle.com . 20 апреля 2021 г.
- ^ «Примечания к выпуску JDK 11.0.12» . oracle.com . 20 июля 2021 г.
- ^ «Исправления ошибок JDK 11.0.12» . oracle.com . 20 июля 2021 г.
- ^ «Примечания к выпуску JDK 11.0.13» . oracle.com . 2021-10-19.
- ^ «Исправления ошибок JDK 11.0.13» . oracle.com . 2021-10-19.
- ^ «Примечания к выпуску JDK 11.0.14» . oracle.com . 18 января 2022 г.
- ^ «Исправления ошибок JDK 11.0.14» . oracle.com . 18 января 2022 г.
- ^ «Примечания к выпуску JDK 11.0.15» . oracle.com . 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 11.0.15» . oracle.com . 19 апреля 2022 г.
- ^ «Примечания к выпуску JDK 11.0.16» . oracle.com . 19 июля 2022 г.
- ^ «Исправления ошибок JDK 11.0.16» . oracle.com . 19 июля 2022 г.
- ^ «Примечания к выпуску JDK 11.0.16.1» . oracle.com . 18 августа 2022 г.
- ^ «Примечания к выпуску JDK 11.0.17» . oracle.com . 2022-10-19.
- ^ «Исправления ошибок JDK 11.0.17» . oracle.com . 2022-10-19.
- ^ «Примечания к выпуску JDK 11.0.18» . oracle.com . 17 января 2023 г.
- ^ «Исправления ошибок JDK 11.0.18» . oracle.com . 17 января 2023 г.
- ^ «Примечания к выпуску JDK 11.0.19» . oracle.com . 18 апреля 2023 г.
- ^ «Исправления ошибок JDK 11.0.19» . oracle.com . 18 апреля 2023 г.
- ^ «Примечания к выпуску JDK 11.0.20» . oracle.com . 18 июля 2023 г.
- ^ «Исправления ошибок JDK 11.0.20» . oracle.com . 18 июля 2023 г.
- ^ «Примечания к выпуску JDK 11.0.21» . oracle.com . 17 октября 2023 г.
- ^ «Исправления ошибок JDK 11.0.21» . oracle.com . 17 октября 2023 г.
- ^ «Примечания к выпуску JDK 11.0.22» . oracle.com . 16 января 2024 г.
- ^ «Исправления ошибок JDK 11.0.22» . oracle.com . 16 января 2024 г.
- ^ OpenJDK. «12».
- ^ «Примечания к выпуску JDK 12» . oracle.com. 19 марта 2019 г.
- ^ «Примечания к выпуску JDK 12.0.1» . oracle.com. 16 апреля 2019 г.
- ^ «Исправления ошибок JDK 12.0.1» . oracle.com . 16 апреля 2019 г.
- ^ «Примечания к выпуску JDK 12.0.2» . oracle.com. 16 июля 2019 г.
- ^ ab «Дорожная карта поддержки Azul». Азул | Лучшая производительность Java, превосходная поддержка Java . Проверено 28 июня 2023 г.
- ^ oracle.com, Марк Рейнхолд (17 сентября 2019 г.). «Java 13/JDK 13: общая доступность».
- ^ «Примечания к выпуску JDK 13» . oracle.com. 17 сентября 2019 г.
- ^ «Примечания к выпуску JDK 13.0.1» . oracle.com. 15.10.2019.
- ^ «Примечания к выпуску JDK 13.0.2» . oracle.com. 14 января 2020 г.
- ^ «Исправления ошибок JDK 13.0.2» . oracle.com . 14 января 2020 г.
- ^ oracle.com, Марк Рейнхолд (17 марта 2020 г.). «Java 14/JDK 14: общая доступность».
- ↑ Эванс, Бен (10 января 2020 г.). «Рекорды приходят на Яву». Журнал Ява . Оракул . Проверено 10 июля 2021 г.
- ^ «Примечания к выпуску JDK 14» . oracle.com. 17.03.2020.
- ^ «Примечания к выпуску JDK 14.0.1» . oracle.com. 14 апреля 2020 г.
- ^ «Исправления ошибок JDK 14.0.1» . oracle.com . 14 апреля 2020 г.
- ^ «Примечания к выпуску JDK 14.0.2» . oracle.com. 14 июля 2020 г.
- ^ «Исправления ошибок JDK 14.0.2» . oracle.com . 14 июля 2020 г.
- ^ Гэвин Бирман; Брайан Гетц (сентябрь 2018 г.). «Сопоставление с образцом для Java». cr.openjdk.java.net . Проверено 28 апреля 2021 г.
- ^ «Примечания к выпуску JDK 15» . oracle.com. 15 сентября 2020 г.
- ^ «Примечания к выпуску JDK 15.0.1» . oracle.com. 20.10.2020.
- ^ «Исправления ошибок JDK 15.0.1» . oracle.com . 20.10.2020.
- ^ «Примечания к выпуску JDK 15.0.2» . oracle.com. 19 января 2021 г.
- ^ «Исправления ошибок JDK 15.0.2» . oracle.com . 19 января 2021 г.
- ^ «[JDK-8255616] Удаление экспериментальных функций AOT и Graal JIT — система ошибок Java» . bugs.openjdk.java.net . Проверено 19 февраля 2021 г.
- ^ «Примечания к выпуску JDK 16» . oracle.com. 16 марта 2021 г.
- ^ «Примечания к выпуску JDK 16.0.1» . oracle.com. 20 апреля 2021 г.
- ^ «Исправления ошибок JDK 16.0.1» . oracle.com . 20 апреля 2021 г.
- ^ «Примечания к выпуску JDK 16.0.2» . oracle.com. 20 июля 2021 г.
- ^ «Исправления ошибок JDK 16.0.2» . oracle.com . 20 июля 2021 г.
- ^ "JDK 17" . openjdk.java.net . Проверено 17 сентября 2021 г.
- ^ «Примечания к выпуску JDK 17» . oracle.com. 14 сентября 2021 г.
- ^ «Примечания к выпуску JDK 17.0.1» . oracle.com. 2021-10-19.
- ^ «Исправления ошибок JDK 17.0.1» . oracle.com . 2021-10-19.
- ^ «Примечания к выпуску JDK 17.0.2» . oracle.com. 18 января 2022 г.
- ^ «Исправления ошибок JDK 17.0.2» . oracle.com . 18 января 2022 г.
- ^ «Примечания к выпуску JDK 17.0.3» . oracle.com. 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 17.0.3» . oracle.com . 19 апреля 2022 г.
- ^ «Примечания к выпуску JDK 17.0.3.1» . oracle.com. 2 мая 2022 г.
- ^ «Исправления ошибок JDK 17.0.3.1» . oracle.com . 2 мая 2022 г.
- ^ «Примечания к выпуску JDK 17.0.4» . oracle.com. 19 июля 2022 г.
- ^ «Исправления ошибок JDK 17.0.4» . oracle.com . 19 июля 2022 г.
- ^ «Примечания к выпуску JDK 17.0.4.1» . oracle.com. 18 августа 2022 г.
- ^ «Примечания к выпуску JDK 17.0.5» . oracle.com. 18 октября 2022 г.
- ^ «Исправления ошибок JDK 17.0.5» . oracle.com . 18 октября 2022 г.
- ^ «Примечания к выпуску JDK 17.0.6» . oracle.com. 17 января 2023 г.
- ^ «Исправления ошибок JDK 17.0.6» . oracle.com . 17 января 2023 г.
- ^ «Примечания к выпуску JDK 17.0.7» . oracle.com. 18 апреля 2023 г.
- ^ «Исправления ошибок JDK 17.0.7» . oracle.com . 18 апреля 2023 г.
- ^ «Примечания к выпуску JDK 17.0.8» . oracle.com. 18 июля 2023 г.
- ^ «Исправления ошибок JDK 17.0.8» . oracle.com . 18 июля 2023 г.
- ^ «Примечания к выпуску JDK 17.0.9» . oracle.com. 17 октября 2023 г.
- ^ «Исправления ошибок JDK 17.0.9» . oracle.com . 17 октября 2023 г.
- ^ «Примечания к выпуску JDK 17.0.10» . oracle.com . 16 января 2024 г.
- ^ «Исправления ошибок JDK 17.0.10» . oracle.com . 16 января 2024 г.
- ^ "JDK 18" . openjdk.org . Проверено 28 июня 2023 г.
- ^ «Примечания к выпуску JDK 18» . oracle.com. 2022-03-22.
- ^ «Примечания к выпуску JDK 18.0.1» . oracle.com. 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 18.0.1» . oracle.com . 19 апреля 2022 г.
- ^ «Примечания к выпуску JDK 18.0.1.1» . oracle.com. 2 мая 2022 г.
- ^ «Исправления ошибок JDK 18.0.1.1» . oracle.com . 2 мая 2022 г.
- ^ «Примечания к выпуску JDK 18.0.2» . oracle.com. 19 июля 2022 г.
- ^ «Исправления ошибок JDK 18.0.2» . oracle.com . 19 июля 2022 г.
- ^ «Примечания к выпуску JDK 18.0.2.1» . oracle.com. 18 августа 2022 г.
- ^ "JDK 19" . openjdk.org . Проверено 19 сентября 2022 г.
- ^ «Примечания к выпуску JDK 19» . oracle.com. 20 сентября 2022 г.
- ^ «Примечания к выпуску JDK 19.0.1» . oracle.com. 18 октября 2022 г.
- ^ «Исправления ошибок JDK 19.0.1» . oracle.com . 18 октября 2022 г.
- ^ «Примечания к выпуску JDK 19.0.2» . oracle.com. 17 января 2023 г.
- ^ «Исправления ошибок JDK 19.0.2» . oracle.com . 17 января 2023 г.
- ^ "JDK 20" . openjdk.org . Проверено 21 апреля 2023 г.
- ^ «Примечания к выпуску JDK 20» . oracle.com. 21 марта 2023 г.
- ^ «Примечания к выпуску JDK 20.0.1» . oracle.com. 18 апреля 2023 г.
- ^ «Исправления ошибок JDK 20.0.1» . oracle.com . 18 апреля 2023 г.
- ^ «Примечания к выпуску JDK 20.0.2» . oracle.com. 18 июля 2023 г.
- ^ «Исправления ошибок JDK 20.0.2» . oracle.com . 18 июля 2023 г.
- ^ "JDK 21" . OpenJDK . Проверено 12 июня 2023 г.
- ^ «Примечания к выпуску JDK 21» . oracle.com. 19 сентября 2023 г.
- ^ «Примечания к выпуску JDK 21.0.1» . oracle.com. 17 октября 2023 г.
- ^ «Исправления ошибок JDK 21.0.1» . oracle.com . 17 октября 2023 г.
- ^ «Примечания к выпуску JDK 21.0.2» . oracle.com . 16 января 2024 г.
- ^ «Исправления ошибок JDK 21.0.2» . oracle.com . 16 января 2024 г.
- ^ "Платформа Java SE 22 JSR 397" . openjdk.org . Проверено 28 июня 2023 г.
- ^ "Платформа Java SE 23 JSR 398" . openjdk.org . Проверено 17 января 2024 г.
- ^ «Загрузки - Обзор» . 18 июля 2016 г.
Внешние ссылки
- Официальные загрузки Java SE
- Версии, поддерживаемые Sun Java, и EOL
- Архив загрузок для старой версии Java
- Релизы JDK
- Альманах Java-версии