История версий Java

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

JDK 1.0 (23 января 1996)[править | править исходный текст]

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

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

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 являются:

  • Swing включен в спецификацию платформы Java 2
  • Коллекции
  • Policy файлы
  • Цифровые сертификаты пользователя
  • Библиотека Accessibility
  • 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[1]) это крупное обновление Java.[2]. Процесс разработки был разбит на 13 этапов; последний этап был достигнут 18 февраля 2011[3][4].

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

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

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

Java SE 7 Update 1[править | править исходный текст]

Вышла 18 октября 2011 года.

Изменения[18]:

  • данный релиз содержит исправления уязвимостей безопасности
  • исправлено 6 ошибок

Java SE 7 Update 2[править | править исходный текст]

Вышла 12 декабря 2011 года.

Изменения[19]:

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

Java SE 7 Update 3[править | править исходный текст]

Вышла 14 февраля 2012 года.

Изменения[20]:

  • данный релиз содержит исправления 14 уязвимостей безопасности

Java SE 8[править | править исходный текст]

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

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

  • Лямбда-выражения и дефолтные методы в интерфейсах
  • Аннотации типов
  • JavaScript-движок Nashorn
  • Параллельная сортировка массивов и коллекций
  • Base64 декодер (java.util.Base64)
  • Date & Time API (java.time)
  • Bulk-операции для коллекций (stream)

Java SE 9[править | править исходный текст]

Ожидается в середине 2015 года[21]. Будет содержать

  • Модуляризация — проект Jigsaw[22][23][24]

См. также[править | править исходный текст]

Java

Примечания[править | править исходный текст]

  1. JDK7, Sun.
  2. Flanagan, David The Open Road: Looking Ahead to Java 7 (8 сентября 2007). Проверено 9 марта 2008. Архивировано из первоисточника 5 февраля 2012.
  3. JDK 7 at OpenJDK
  4. JDK 7
  5. Miller, Alex Java 7. Проверено 30 мая 2008. Архивировано из первоисточника 5 февраля 2012.
  6. Compressed oops in the Hotspot JVM. OpenJDK. Проверено 16 апреля 2010.
  7. Project Coin. Sun Microsystems. Проверено 30 марта 2009. Архивировано из первоисточника 4 октября 2012.
  8. Darcy, Joseph D. Project Coin: Small Language Change Proposal Form Available (27 января 2009). Проверено 30 марта 2009.
  9. Proposal: Strings in Switch
  10. Proposal: Automatic Resource Management
  11. Proposal: Improved Type Inference for Generic Instance Creation
  12. PROPOSAL: Simplified Varargs Method Invocation
  13. Darcy, Joseph D. Project Coin: The Final Five (Or So). Проверено 16 апреля 2010.
  14. Concurrency JSR-166. Проверено 16 апреля 2010. Архивировано из первоисточника 27 июля 2013.
  15. File I/O (Featuring NIO.2) (The Java™ Tutorials > Essential Classes > Basic I/O)
  16. Legacy File I/O Code (The Java™ Tutorials > Essential Classes > Basic I/O)
  17. Re-thinking JDK 7 (8 сентября 2010). Проверено 20 сентября 2010.
  18. Update Release Notes, Java SE 7 Update 1
  19. Update Release Notes, Java SE 7 Update 2
  20. Update Release Notes, Java SE 7 Update 3
  21. 1 2 Java SE 8 Release Contents. OpenJDK. Архивировано из первоисточника 27 июля 2013.
  22. Project Jigsaw. OpenJDK. Архивировано из первоисточника 27 июля 2013.
  23. Java Module-System Requirements — DRAFT 12. Oracle. Архивировано из первоисточника 27 июля 2013.
  24. infoworld. Архивировано из первоисточника 27 июля 2013.

Ссылки[править | править исходный текст]