The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Компания Oracle выпустила Java 8

18.03.2014 23:33

После двух лет и семи месяцев разработки компания Oracle выпустила платформу Java SE 8 (Java Platform, Standard Edition 8), в качестве эталонной реализации которой используется открытый проект OpenJDK. В Java SE 8 сохранена полная обратная совместимость с прошлыми выпусками платформы Java, все ранее написанные Java-проекты без изменений будут работоспособны при запуске под управлением новой версии.

Готовые для установки сборки Java SE 8 (JDK, JRE и Server JRE) подготовлены для Linux (x86, x86_64, ARM), Solaris (x86, SPARC), Windows и OS X. Поддержка Java SE 8 уже интегрирована в такие инструменты для разработчиков, как NetBeans 8.0, IntelliJ IDEA 12 и Oracle JDeveloper. Одновременно представлена редакция Java SE для встраиваемых систем - Java SE Embedded 8, обладающая базовыми возможностями Java SE и пригодная для использования на портативных устройствах с 32 Мб ОЗУ, занимая от 11 Мб на накопителе.

Изначально релиз Java SE 8 планировалось выпустить в сентябре 2013 года, но график разработки был изменён в связи с решением по проведению внеочередной работы по усилению безопасности Java 7, на которую были переброшены многие вовлечённые в разработку Java 8 инженеры. Разработанная в рамках проекта OpenJDK эталонная реализация Java 8 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами. Используя OpenJDK в качестве эталонной реализации сторонние производители могут создавать полностью совместимые с Java SE 8 производные открытые реализации Java. Проприетарный Oracle JDK 8 отличается от OpenJDK наличием некоторых закрытых компонентов, таких как система плагинов, которые не определены в Java-стандарте и не входят в эталонную реализацию Java 8. Oracle JDK поставляются под лицензией BCL (Binary Code Licence).

Основные новшества Java SE 8:

  • Интеграция поддержки Lisp-подобных лямбда-выражений, развиваемых в рамках проекта Lambda. Расширений стандартных библиотек средствами для параллельного выполнения операций над потоками данных, нацеленных на упрощение написания кода для многоядерных процессоров;
  • Поддержка компактных профилей для развёртывания на оборудовании с ограниченными ресурсами приложений, которым не требуются все компоненты платформы;
  • Новая система сборки на основе Autoconf;
  • Интеграция Nashorn, легковесного и высокопроизводительного движка JavaScript, работающий поверх виртуальной машины Java (JVM);
  • Новый API для работы с датами и временем. Новые Calendar и Locale API;
  • Повторяющиеся аннотации (Repeating Annotations), позволяющие применить один и тот же тип аннотации более одного раза в одном объявлении или применении типа.
  • Тип аннотаций, предоставляющий возможность применения аннотаций везде, где используются типы, а не только при объявлении;
  • Новый пакет с классами java.util.stream, предоставляющий Stream API с поддержкой операций в стиле функционального программирования над потоками элементов;
  • Увеличение производительности HashMaps в условиях возникновения коллизий;
  • Улучшение средств шифрования: Включение по умолчанию TLS 1.2 на стороне клиента. Усиление алгоритмов для шифрования с использованием паролей. Поддержка SNI (Server Name Indication) в JSSE Server для обеспечения доступа через шифрованное соединение к виртуальным хостам на одном IP. Поддержка хэширования SHA-224 и блочного шифра AEAD (Authenticated Encryption with Associated Data). Новый класс java.security.cert.PKIXRevocationChecker для настройки проверки отзыва сертификатов X.509. Поддержка аппаратного ускорения шифрования AES на процессорах Intel;
  • Многочисленные улучшения в JavaFX, включая новые элементы управления DatePicker и TreeTableView, класс SwingNode для встраивания контента Swing, новая тема оформления Modena, пакет javafx.print с API для вывода на печать, класс WebView, класс ScheduledService, поддержка архитектуры ARM, существенное расширение средств для работы с 3D-графикой (3D-формы, камера, освещение, субсцены, материалы, сглаживание);
  • Включение в состав Java DB 10.10;
  • В пакеты java.lang и java.util добавлены средства для параллельной сортировки массивов и функции кодирования/декодирования Base64.


  1. Главная ссылка к новости (http://mreinhold.org/blog/jdk8...)
  2. OpenNews: Компания Oracle анонсировала выход Java SE 7
Лицензия: CC-BY
Тип: Программы
Ключевые слова: java, jdk
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Фыр (?), 23:50, 18/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Nashorn, легковесного и высокопроизводительного движка JavaScript, работающий поверх виртуальной машины Java (JVM).

    Ну хоть название честное, без лицемерия и маркетологической чуши:)

     
     
  • 2.3, жабабыдлокодер (ok), 23:52, 18/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Не-а, это ответ на проект Rhino...
     
     
  • 3.43, Аноним (-), 10:37, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Rhino это вроде как-бы кораблики проектировать... При чем тут?
     
     
  • 4.45, Аноним (-), 10:47, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.mozilla.org/rhino/
     
  • 3.53, anonymous (??), 13:23, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    а что кстати с Rhino не то?
    вполне себе производительный, как мне показалось
    ну правда для супермегавычислений не использовался, а так нормальное впечатление производит
     
  • 2.37, ryoken (?), 09:23, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>Nashorn, легковесного и высокопроизводительного движка JavaScript, работающий поверх виртуальной машины Java (JVM).
    > Ну хоть название честное, без лицемерия и маркетологической чуши:)

    Это ж вроде с немецкого "носорог"? (а в WoT - ПТ-САУ 6-го уровня :D)

     
     
  • 3.71, Аноним (-), 10:29, 21/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А потом "Боршь" и "Вафля" :)
     

  • 1.2, жабабыдлокодер (ok), 23:52, 18/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Опа! Наконец-то нормальную работу с датами и временем сделали, через двадцать лет...
     
     
  • 2.4, max (??), 00:07, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    они уже поторопились с календарем - пусть лучше позже, чем шило
     
  • 2.52, csdoc (ok), 12:29, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Опа! Наконец-то нормальную работу с датами и временем сделали, через двадцать лет...

    При желании, нормально работать с датами и временем можно было и раньше,
    с помощью отличной "сторонней" библиотеки http://www.joda.org/joda-time/

    Почти для всех подсистем из "стандартной" Java есть лучшие по качеству альтернативы,
    но только в виде "сторонних" библиотек. Например, вместо java.util.logging.*
    есть SLF4J+logback, вместо JavaEE - Spring Framework, и т.д. и т.п.

     

  • 1.5, Аноним (-), 00:32, 19/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А лямбда это просто синтаксический сахар над анонимными типами или как? я в том плане, что они пермгенобезопасны или нет?
     
     
  • 2.7, VoDA (ok), 00:49, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Синтаксический сахар не создает новых классов в рантайме - только компайл. В рантайме инстансы, потому количество лямбд не должно влиять на работу приложения.

    PS Вроде пермген в HotSpot упразднили.

     
     
  • 3.72, Аноним (-), 11:51, 24/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Синтактический сахар не мейкает новых классов в рантайме - онли компайл. В рантайме инстансы, бикоз коЛЛичество лямбд не должно влиять на ворканье апликации.
     
  • 2.19, helloworlder (?), 02:13, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    дополню ответ выше ссылочкой
    http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
     
  • 2.67, pvnhome (ok), 08:36, 20/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Написано "Lambda expressions let you express instances of single-method classes more compactly". То есть я понимаю так, что это все же обёртка над анонимными классами.
     

  • 1.13, lucentcode (ok), 00:59, 19/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хороший релиз. А лямбды народ давно ждал. Наконец-то дождались.
     
     
  • 2.60, жабабыдлокодер (ok), 18:46, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрел примеры, так и не понял, зачем эта лямбда нужна. Анонимные классы покрывают практически все применение лямбды. А там, где не покрывают, там код становится менее читаемым и труднее отлаживаемым.
     
     
  • 3.62, Имя (?), 18:59, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Посмотрел примеры, так и не понял, зачем эта лямбда нужна. Анонимные классы
    > покрывают практически все применение лямбды. А там, где не покрывают, там
    > код становится менее читаемым и труднее отлаживаемым.

    А можно тут как-нибудь плюсануть в карму? Согласен на стопиццот.

     

  • 1.16, Crazy Alex (ok), 01:30, 19/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Жаль, лучше бы еще лет пять потянули - глядишь, и потеснил бы жабу и жаба-машину кто-нибудь...
     
     
  • 2.24, Аноним (-), 03:36, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Когда программисту заняться нечем он или java теснит или с++ хоронит.
    Уже двадцатый год теснят и хоронят.
     
     
  • 3.48, Аноним (-), 11:44, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если

    > он или java теснит или с++ хоронит

    то он не программист

     

  • 1.18, vn971 (ok), 01:45, 19/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хоть я уже и на Скале, а всё равно приятно)

    Кстати, в java8 ещё добавили virtual extensions, т.е. интерфейсы могут иметь дефолтные методы. Например как здесь: http://stackoverflow.com/questions/18198517/java-8-virtual-extension-methods-

     
     
  • 2.61, Имя (?), 18:58, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вот блин ну зачем! Раньше вместо этого использовались абстрактрые классы и было все четко и разграничего а сейчас будет разброд и шатание а также холивары на тему где лучше в интерфейсе дефолтным методом или в абстрактном классе?

    И как будет это дело рулиться при наследовании от двух интефейсов с одинаковыми сигнатурами методов и со своими дефолтными (разными) реализациями? Это напоминает мне то, за что я ненавижу С++ - за множественное наследование от классов.

     
     
  • 3.63, vn971 (ok), 19:03, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Отвечая на вопрос -- решаться будет так же как в Скале с их mix-in-ами. Определять будет порядок смешивания, который чётко определён.

    Вдобавок, теперь поведение объекта можно будет смешивать добавляя разные "интерфейсы" (это уже чистый mix-in и слово "интерфейс" тут даже не подходит).

     

  • 1.22, Аноним (-), 02:49, 19/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как-то жидковато для мажорной версии.

    > Интеграция поддержки Lisp-подобных лямбда-выражений ("замыкания")

    сахар, и не более того.

    > Увеличение производительности HashMaps в условиях возникновения коллизий;

    Пофикшено спустя ~8 лет после обнаружения проблемы. Оперативно.

     
     
  • 2.25, Аноним (-), 03:39, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >Как-то жидковато для мажорной версии.

    Все знают что новая мажорная версия должна ломать совместимость со старой как у С# или просто? отправлять язык на свалку как Python. Эт изменения, эт, я понимаю.

     
     
  • 3.59, iZEN (ok), 18:32, 19/03/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>Как-то жидковато для мажорной версии.
    > Все знают что новая мажорная версия должна ломать совместимость со старой как
    > у С# или просто? отправлять язык на свалку как Python. Эт
    > изменения, эт, я понимаю.

    Насколько я знаю Java с версий 1.1.2 до 7u51 мне не попадались проблемы с обратной совместимостью приложений, написанных для предыдущих версий среды. Обычно всё работает в новой версии JRE и старую можно удалять.

     
     
  • 4.73, Аноним (-), 20:24, 26/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >>>Как-то жидковато для мажорной версии.
    >> Все знают что новая мажорная версия должна ломать совместимость со старой как
    >> у С# или просто? отправлять язык на свалку как Python. Эт
    >> изменения, эт, я понимаю.
    > Насколько я знаю Java с версий 1.1.2 до 7u51 мне не попадались
    > проблемы с обратной совместимостью приложений, написанных для предыдущих версий среды.
    > Обычно всё работает в новой версии JRE и старую можно удалять.

    Вы - конкретный везунчик. В Java бывает порой даже так, что ABI ломают в минорной версии, ибо в документации одно, а по факту - другое, и правильно как в документации - где-то в районе 1.6 такое было.

     
  • 3.69, anonymous (??), 09:39, 20/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно! Просто подумайте о всех тех несчастных графоманах, которые останутся без средств к существованию, если не смогут продать переиздания своих талмудов "Программирование на <language_name>".
     
  • 2.68, Аноним (-), 08:45, 20/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    лучше мало, чем совсем ничего
     
     
  • 3.70, Аноним (-), 17:36, 20/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да и мажорность версий жабы весьма условна, т.к. просто перестали писать "1." в начале.
     

  • 1.64, anonymous (??), 19:24, 19/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >В Java SE 8 сохранена полная обратная совместимость с прошлыми выпусками платформы Java, все ранее написанные Java-проекты без изменений будут работоспособны при запуске под управлением новой версии.

    Вот за это я их уважаю!

     
  • 1.66, Аноним (-), 19:59, 19/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Достали уже путать лямбды и замыкания: лямбды - объекты языка, замыкания - прием - программирования.
     
  • 1.74, iZEN (ok), 22:01, 14/04/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Во FreeBSD порт OpenJDK8 появился 28 марта: http://www.freshports.org/java/openjdk8/

    Подкаст "Разбор Полетов", посвящённый JDK 8: http://razbor-poletov.com/2014/04/episode-59.html

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру