Interested Article - История версий Java SE

Версии

Версия Дата выпуска Конец бесплатной поддержки Конец LTS
JDK Beta 1995 неизвестно неизвестно
JDK 1.0 январь 1996
JDK 1.1 февраль 1997
J2SE 1.2 декабрь 1998
J2SE 1.3 май 2000
J2SE 1.4 февраль 2002 октябрь 2008 февраль 2013
J2SE 5.0 сентябрь 2004 ноябрь 2009 апрель 2015
Java SE 6 декабрь 2006 апрель 2013 декабрь 2018
Java SE 7 июль 2011 апрель 2015 июль 2022
Java SE 8 (LTS) март 2014
  • Январь 2019 (коммерческая лицензия Oracle)
  • Декабрь 2020 (лицензия для персонального использования Oracle)
  • Сентябрь 2023 (для AdoptOpenJDK )
март 2025
Java SE 9

сентябрь 2017 Март 2018 (OpenJDK)
Java SE 10 март 2018 Сентябрь 2018 (OpenJDK)
Java SE 11 (LTS) сентябрь 2018 Сентябрь 2022 сентябрь 2026
Java SE 12 март 2019 Сентябрь 2019
Java SE 13 сентябрь 2019 Март 2020
Java SE 14 март 2020 Сентябрь 2020
Java SE 15 сентябрь 2020 Март 2021
Java SE 16 март 2021 Сентябрь 2021 (OpenJDK)
Java SE 17 (LTS) сентябрь 2021 Сентябрь 2030

JDK 1.0 (23 января 1996)

Первый выпуск. Первой стабильной версией стала JDK 1.0.

JDK 1.1 (19 февраля 1997)

Наиболее значимые дополнения:

  • обширное изменение событий библиотеки AWT
  • в язык добавлены внутренние классы
  • JavaBeans (классы в языке Java, написанные по определённым правилам. Они используются для объединения нескольких объектов в один для удобной передачи данных)
  • JDBC (соединение с базами данных) — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД
  • RMI (программный интерфейс вызова удаленных методов)
  • ограниченная рефлексия (модификация во время выполнения невозможна, есть только наблюдение собственной структуры)

J2SE 1.2 (8 декабря 1998)

Кодовое имя Playground .

Следующей базовой версией Java стала версия Java 2, символизировавшая собой второе поколение. Первой версии Java 2 был присвоен номер 1.2. С появлением версии 2, SUN Microsystems стала выпускать Java в виде пакета J2SE (Java 2 Platform Standard Edition — Стандартная версия платформы Java 2) и теперь номера версий указываются применительно к этому продукту.

Java 2 , или Java 2.0 — дальнейшее развитие и усовершенствование спецификации исходного стандарта языка и платформы Java , на который теперь принято ссылаться как на Java 1.0. В настоящее время спецификация платформы Java 2 продолжает интенсивно развиваться и обогащаться, пополняясь новыми возможностями, особенно из-за конкуренции с платформой .Net, перенявшей у Java ряд ключевых особенностей.

Основными усовершенствованиями Java 2 по сравнению с Java 1.0 являются:

  • включен в спецификацию платформы Java 2
  • Коллекции
  • Java 2D
  • Поддержка технологии drag-and-drop
  • Полная поддержка Unicode, включая поддержку ввода на японском, китайском и корейском языках
  • Поддержка воспроизведения аудиофайлов нескольких популярных форматов
  • Полная поддержка технологии CORBA
  • Включение в JDK для Java 2 JIT-компилятора, улучшенная производительность
  • Усовершенствования инструментальных средств JDK , включая поддержку профилирования Java-программ

J2SE 1.3 (8 мая 2000)

Кодовое имя Kestrel .

J2SE 1.4 (6 февраля 2002)

Кодовое имя Merlin .

J2SE 5.0 (30 сентября 2004)

Кодовое имя Tiger . Спецификация Java 5 была выпущена в сентябре 2004 года. В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:

  • Перечислимые типы (enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей.
    • Перечислимый тип является полноценным классом Java, то есть может иметь конструктор, поля, методы, в том числе скрытые и абстрактные.
    • Перечисление может реализовывать интерфейсы.
    • Для перечислений имеются встроенные методы, дающие возможность получения значений типа по имени, символьных значений, соответствующих именам, преобразования между номером и значением, проверки типа на то, что он является перечислимым.
  • Аннотации — возможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнении. Одновременно выпущен инструментарий для использования аннотированного кода. Одно из применений аннотаций — упрощение создания тестовых модулей для Java-кода.
  • Средства обобщённого программирования (generics) — механизм, аналогичный Eiffel (позже также появились и в C#, принципиально отличаются от шаблонов C++), дающий возможность создавать классы и методы с полями и параметрами произвольного объектного типа. С использованием данного механизма реализованы новые версии коллекций стандартной библиотеки Java.
  • Методы с неопределённым числом параметров.
  • Autoboxing/Unboxing — автоматическое преобразование между скалярными типами Java и соответствующими типами-обёртками (например, между int и Integer). Наличие такой возможности упрощает код, поскольку исключает необходимость в выполнении явных преобразований типов в очевидных случаях.
  • Разрешён импорт статических методов и переменных.
  • В язык введён цикл по коллекции объектов ( итератор , foreach ).

Java SE 6 (11 декабря 2006)

Кодовое имя Mustang .

Java SE 7 (7 июля 2011)

Java 7 (кодовое имя Dolphin ) это крупное обновление Java. . Процесс разработки был разбит на 13 этапов; последний этап был достигнут 18 февраля 2011 .

Новые возможности в Java 7

  • Строки в switch
  • Автоматическое управление ресурсами
  • Выведение типов при создании экземпляра обобщённого (generic) класса
  • Упрощен вызов метода с переменным числом аргументов
  • Поддержка подчеркиваний в качестве разделителей цифр для чисел (Возможность разбивать визуально числа на разряды, увеличивает удобочитаемость)
  • Поддержка коллекций на уровне языка
  • Средства для параллельного исполнения в рамках JSR 166
  • Новая библиотека Ввода-вывода для улучшения платформонезависимости и поддержки метаданных и символьных ссылок. Пакеты: java.nio.file и java.nio.file.attribute
  • Поддержка алгоритмов эллиптической криптографии на уровне библиотеки.
  • XRender для Java 2D, улучшающий управление возможностями современных GPU
  • Новое графическое API , которое планировали выпустить в Java версии 6u10
  • Расширение поддержки сетевых протоколов (включая SCTP и Sockets Direct Protocol ) на уровне библиотеки
  • Обновления в XML и Юникоде .

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

Обновления Java SE 7

Релиз Дата релиза Изменения
Java SE 7

Update 1

18 октября 2011 г. Данный релиз содержит:
  • исправления уязвимостей безопасности
  • исправлено 6 ошибок
Java SE 7

Update 2

12 декабря 2011 г. Данный релиз содержит:
  • Новый JVM (Java HotSpot Virtual Machine, версия 22), который повышает надёжность и производительность
  • Поддержка Oracle Solaris 11
  • Поддержка Firefox 5 и старше
  • JavaFX входит в состав Java SE
...
Java SE 7

Update 80

14 апреля 2015 г. Данный релиз содержит:
  • исправления уязвимостей безопасности
  • исправлено 104 ошибки

Это последний выпущенный общедоступный релиз Java SE 7

Java SE 8 (18 марта 2014)

Вышла 18 марта 2014 года .

Новые возможности в Java 8

  • Лямбда-выражения и аннотация @FunctionalInterface
  • Возможность наличия у метода интерфейса реализации по умолчанию
  • Аннотации типов
  • JavaScript-движок Nashorn
  • Base64 декодер (java.util.Base64)
  • Date & Time API (java.time)
  • Stream API – Возможность выполнения последовательности операций над элементами массива, а также возможность производить их параллельно (parallelStream);
  • Добавлены операции над ассоциативными массивами (Map)
  • Появились ссылки на метод или конструктор
  • Появились предикаты, функции, поставщики (Фабрики объектов), опциональные значения, конструктор компаратора.

Java 9

На 2011, Oracle обсудила возможности, которые возможно были бы выпущены к Java 9 в 2016. Java 9 должна была поддерживать улучшенную поддержку многогигабайтных куч, лучшую интеграцию нативного кода , изменённый стандартный сборщик мусора (G1 с «укороченным временем отзыва») и JVM.

В начале 2016 релиз Java 9 был отложен на март 2017, позже перенесён на июль 2017, а потом перенесён на сентябрь 2017, из-за спорного принятия проекта Jigsaw Исполнительный комитет Java, который заставил Oracle исправить некоторые проблемы безопасности и критические технические вопросы. В последние дни июня 2017, Исполнительный комитет Java выразил единогласное согласие за систему модулей.

Функции, добавленные в Java 9:

  • JSR 376: модульность в JDK ( проект Jigsaw , )
  • JEP 222: : консоль Java (Java REPL )
  • JEP 295: Ahead-of-Time компилятор
  • JEP 268:
  • JEP 266: обновления библиотек многопоточности; включение в Java проекта , включая класс Flow .
  • JEP 193: Variable Handles: определение стандарта вызова эквивалентов различных операций java.util.concurrent.atomic и sun.misc.Unsafe .
  • JEP 282: jlink ( компоновщик Java): создание инструмента, который может скомпоновать и оптимизировать комплект модулей с зависимостями в Runtime. Это позволяет создавать запускаемые файлы без дополнительных установок, даже JVM.

Первый RC Java 9 был выпущен 9 августа 2017. Первый стабильный релиз был 21 сентября 2017

Обновления Java 9

Релиз Дата релиза Примечания
Java SE 9 21 сентября 2017 года Первый релиз
Java SE 9.0.1 17 октября 2017 года Исправление 12 багов, переход на новую систему нумерации
Java SE 9.0.4 16 января 2018 года Финальный релиз; патчи безопасности и исправление критических ошибок

Java 10

OpenJDK 10 вышла 20 марта 2018 года, было добавлено 12 новых функций. Среди них:

  • JEP 286: Автоматическое выведение типа локальных переменных
  • JEP 317: Экспериментальный Java-based JIT компилятор. Это адаптация динамического компилятора Graal для платформы Linux x64
  • JEP 310: Обмен информацией о классах приложения
  • JEP 322: Смена стратегии версионирования Java
  • JEP 307: Полностью параллельная сборка мусора для G1
  • JEP 304: Интерфейс Garbage-collector
  • JEP 314: Расширение с дополнительные языковыми тегами Unicode
  • JEP 319: Установка хранилища CA по умолчанию
  • JEP 312: Thread-local handshakes
  • JEP 316: Возможность размещения Heap на альтернативных устройствах памяти
  • JEP 313: Удаление утилиты для генерации нативных заголовков – javah
  • JEP 296: Объединение репозиториев JDK в один общий репозиторий

Обновления Java 10

Release Release date Highlights
Java SE 10 20 марта 2018 года Первый релиз
Java SE 10.0.1 17 апреля 2018 года Патчи безопасности и исправление 5 багов
Java SE 10.0.2 17 июля 2018 года Финальный релиз; патчи безопасности, исправление 7 багов

Java 11

OpenJDK 11 вышла 25 сентября 2018 года, было добавлено 17 новых функций. Среди них:

  • JEP 181: Управление Nest-Based доступом
  • JEP 309: Динамические константы класса-файла
  • JEP 315: улучшение встроенных функций Aarch64
  • JEP 318: Epsilon: No-Op cборщик мусора
  • JEP 320: удаление модулей Java EE и CORBA
  • JEP 321: добавлен HTTP -клиент (стандартный)
  • JEP 323: синтаксис локальной переменной для лямбда-параметров
  • JEP 324: ключевое соглашение с Curve25519 и Curve448
  • JEP 327: Unicode 10
  • JEP 328: Flight Recorder
  • JEP 329: криптографические алгоритмы ChaCha20 и Poly1305
  • JEP 330: Запуск однофайловых Source-Code программ
  • JEP 331: Low-Overhead Heap Profiling
  • JEP 332: безопасность транспортного уровня (TLS) 1.3
  • JEP 333: ZGC: экспериментальный сборщик мусора с масштабируемостью и Low-Latency
  • JEP 335: движок Nashorn JavaScript объявлен устаревшим
  • JEP 336: инструменты Pack200 и API

Обновления Java 11

Release Release date Highlights
Java SE 11 28 июня 2018 года - 26 июля 2018 года Рампдаун (в 2 фазах)
Java SE 11.0.1 16 августа 2018 года Первый релиз
Java SE 11.0.2 30 августа 2018 года Финальный релиз

Java 12

Java 13

Java 14

Java 15

См. также

Примечания

  1. (англ.) . Дата обращения: 20 марта 2019. 3 февраля 2021 года.
  2. Shapiro, Alex (2017-09-21). . Oracle Press Releases (англ.) . Архивировано из 2 октября 2018 . Дата обращения: 20 апреля 2019 .
  3. . OpenNET . 2017-09-22. из оригинала 23 сентября 2017 . Дата обращения: 20 апреля 2019 .
  4. (англ.) . 20 апреля 2019 года.
  5. от 10 июня 2007 на Wayback Machine , Sun.
  6. Flanagan, David (8 сентября 2007). Дата обращения: 9 марта 2008. 5 февраля 2012 года.
  7. . Дата обращения: 9 июля 2010. 8 января 2021 года.
  8. . Дата обращения: 9 июля 2010. 30 октября 2020 года.
  9. Miller, Alex . Дата обращения: 30 мая 2008. 5 февраля 2012 года.
  10. . OpenJDK. Дата обращения: 16 апреля 2010. Архивировано из 31 августа 2009 года.
  11. . Sun Microsystems . Дата обращения: 30 марта 2009. 4 октября 2012 года.
  12. Darcy, Joseph D. (27 января 2009). Дата обращения: 30 марта 2009. Архивировано из 30 января 2009 года.
  13. . Дата обращения: 9 июля 2010. 10 мая 2010 года.
  14. . Дата обращения: 9 июля 2010. 10 июня 2010 года.
  15. . Дата обращения: 9 июля 2010. 29 июня 2010 года.
  16. . Дата обращения: 9 июля 2010. 29 июня 2010 года.
  17. Darcy, Joseph D. . Дата обращения: 16 апреля 2010. Архивировано из 1 сентября 2009 года.
  18. . Дата обращения: 16 апреля 2010. 26 июля 2013 года.
  19. . Дата обращения: 9 июля 2010. 1 марта 2009 года.
  20. . Дата обращения: 9 июля 2010. 2 июня 2009 года.
  21. (8 сентября 2010). Дата обращения: 20 сентября 2010. Архивировано из 24 сентября 2010 года.
  22. . www.oracle.com. Дата обращения: 23 апреля 2018. 23 апреля 2018 года.
  23. . (недоступная ссылка)
  24. Andy Patrizio. (англ.) . Network World (7 мая 2015). Дата обращения: 12 ноября 2017.
  25. Uwe Schindler. (англ.) . jaxenter (26 июня 2015). Дата обращения: 12 ноября 2017. 26 сентября 2017 года.
  26. Eric Bruno. (англ.) . Dr.Dobb's . Дата обращения: 12 ноября 2017.
  27. Euan Viveash (2016-01-05). . FileHippo (англ.) . из оригинала 29 июля 2017 . Дата обращения: 12 ноября 2017 .
  28. Simon Sharwood (2016-09-14). . The Register (англ.) . из оригинала 9 мая 2017 . Дата обращения: 12 ноября 2017 .
  29. Christina Mercer (2017-09-26). . TechWorld (англ.) . Дата обращения: 12 ноября 2017 .
  30. Paul Krill (2017-05-09). . InfoWorld (англ.) . Дата обращения: 12 ноября 2017 .
  31. Richard Chirgwin (2017-07-02). . The Register (англ.) . из оригинала 11 ноября 2017 . Дата обращения: 12 ноября 2017 .
  32. (англ.) . Java Community Process . Дата обращения: 12 ноября 2017. 10 января 2018 года.
  33. (англ.) . Дата обращения: 12 ноября 2017. 9 января 2021 года.
  34. Mark Reinhold. (англ.) (19 апреля 2011). Дата обращения: 12 ноября 2017. 23 сентября 2013 года.
  35. Paul Krill (2012-07-18). . InfoWorld (англ.) . Дата обращения: 12 ноября 2017 .
  36. (англ.) . Дата обращения: 12 ноября 2017. 15 ноября 2017 года.
  37. (англ.) . Дата обращения: 12 ноября 2017. 28 января 2021 года.
  38. (англ.) . Дата обращения: 12 ноября 2017. 7 февраля 2018 года.
  39. (англ.) . Дата обращения: 12 ноября 2017. 1 декабря 2020 года.
  40. (англ.) . Дата обращения: 12 ноября 2017. 16 августа 2020 года.
  41. (англ.) . Дата обращения: 12 ноября 2017. 15 января 2016 года.
  42. Doug Lea. (англ.) (15 января 2015). Дата обращения: 12 ноября 2017. 20 января 2015 года.
  43. Abraham Marín Pérez (2015-01-01). . InfoQ (англ.) . из оригинала 22 августа 2017 . Дата обращения: 12 ноября 2017 .
  44. (англ.) . Дата обращения: 12 ноября 2017. 3 ноября 2017 года.
  45. mark.reinhold. (англ.) (9 августа 2017). Дата обращения: 12 ноября 2017. 12 ноября 2017 года.
  46. Christina Mercer (2017-09-26). . (англ.) . Дата обращения: 12 ноября 2017 .
  47. (21 сентября 2017). Дата обращения: 12 ноября 2017. 14 ноября 2017 года.
  48. (17 октября 2017). Дата обращения: 12 ноября 2017. 15 ноября 2017 года.
  49. . www.oracle.com. Дата обращения: 5 февраля 2019. 29 мая 2020 года.
  50. . openjdk.java.net. Дата обращения: 26 февраля 2020. 18 ноября 2018 года.
  51. . openjdk.java.net. Дата обращения: 26 февраля 2020. 25 февраля 2020 года.
  52. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  53. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  54. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  55. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  56. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  57. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  58. . openjdk.java.net. Дата обращения: 26 февраля 2020. 22 февраля 2020 года.
  59. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  60. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  61. . openjdk.java.net. Дата обращения: 26 февраля 2020. 26 февраля 2020 года.
  62. . openjdk.java.net. Дата обращения: 17 октября 2020. 18 ноября 2018 года.
  63. . openjdk.java.net. Дата обращения: 17 октября 2020. 11 ноября 2020 года.
  64. . openjdk.java.net. Дата обращения: 17 октября 2020. 8 октября 2020 года.
  65. . openjdk.java.net. Дата обращения: 17 октября 2020. 18 ноября 2018 года.
  66. . openjdk.java.net. Дата обращения: 17 октября 2020. 1 ноября 2020 года.
  67. . openjdk.java.net. Дата обращения: 17 октября 2020. 24 ноября 2018 года.
  68. . openjdk.java.net. Дата обращения: 17 октября 2020. 15 ноября 2018 года.
  69. . openjdk.java.net. Дата обращения: 17 октября 2020. 6 ноября 2020 года.
  70. . openjdk.java.net. Дата обращения: 17 октября 2020. 18 ноября 2018 года.
  71. . openjdk.java.net. Дата обращения: 17 октября 2020. 9 ноября 2020 года.
  72. . openjdk.java.net. Дата обращения: 17 октября 2020. 18 июля 2020 года.
  73. . openjdk.java.net. Дата обращения: 17 октября 2020. 9 ноября 2020 года.
  74. . openjdk.java.net. Дата обращения: 17 октября 2020. 11 ноября 2020 года.
  75. . openjdk.java.net. Дата обращения: 17 октября 2020. 18 ноября 2018 года.
  76. . openjdk.java.net. Дата обращения: 17 октября 2020. 18 ноября 2018 года.
  77. . openjdk.java.net. Дата обращения: 17 октября 2020. 3 ноября 2020 года.
  78. . openjdk.java.net. Дата обращения: 17 октября 2020. 26 сентября 2020 года.

Ссылки

  • (англ.)
Источник —

Same as История версий Java SE