Страницы

1 сентября 2012 г.

Java 7 - обзор нововведений


Наткнулся на хабре на более менее подробную статью новшеств в java.Пускаем слюни.

В недавнем релизе Java появилось немало вещей, на которые стоит обратить внимание. Конечно же, все мы были огорчены переносом Project Lambda и некоторых прочих вкусняшек в JDK8, но тем не менее, и этот релиз привнёс что-то полезное в арсенал java-разработчика. Под катом можно найти более детальный обзор новшеств. По наиболее интересным из них, скорее всего, будут написаны дополнительные статьи с примерами использования.

Виртуальная машина

 InvokeDynamic

Давно ожидаемое любителями динамических языков программирования решение, позволяющее взаимодействовать с динамическими языками практически без потери производительности. Разработчики JVM очень хвалят это творение, но, к сожалению, пока не предоставили примеров его использования в реальной жизни. На страничке проекта есть немного документации, но она совсем не тривиальна. Потому на этот счёт можно ожидать статьи.

Строгая проверка бинарных класс-файлов

В Java 7 ввели новый верификатор, получивший название «проверяющего типы» (typechecking verifier), который работает несколько быстрее и поддерживает новые языковые фичи. Этот верификатор обязательно будет использоваться для бинарников версии 51 и более, то есть >= SE7.

Синтаксический сахар

Про Project Coin уже писали много, в том числе и на хабре, поэтому в дальнейшем представлении он, полагаю, не нуждается. Впрочем, вы всегда можете исправить моё заблуждение в комментариях :) Стоит только отметить, что coin разбили на две части, и наиболее трепетно ожидаемая, содержащая приятности вроде упрощённого создания коллекций, в SE 7 не войдёт.

Изменения в ядре

Обновление архитектуры classloader'а

В новой версии внесены исправления в classloader, позволяющие избежать deadlock-ов в неиерархических топологиях загрузчиков. Благодаря новому classloader-у существенно расширились возможности разработчика по загрузке классов. Более подробно можно почитать тут, при желании тоже можно написать статью.

Метод close для URLClassLoader

Тут особо и говорить нечего: теперь можно освободить ресурсы, которые держит classloader. Подробнее тут.

Обновления для java.util.concurrent и коллекций

Новый релиз предоставляет множество новых полезных библиотек для многопоточных приложений. Об одной из них, Phaser, уже писали на хабре. Помимо него включены легковесный fork/join(UPD: статья с описанием) и ещё некоторые барьеры, concurrent-версии деков на связных списках и thread-local генератор случайных чисел. Более подробное ожидание ожидается в отдельной статье.

Интернационализация

Unicode 6.0

Теперь последняя поддерживаемая версия Unicode стала 6.0.

Улучшение java.util.Locale

Теперь этот класс поддерживает IETF BCP 47(Метки для определения языков)и UTR 35(локализованную языковую разметку зыков)

Разделены локаль пользователя и локаль графического интерфейса

Теперь форматирование текста и отображение чего-либо на экране имеют независимые локали. Подробнее можно посмотреть в обновлённом javadoc.

Ввод-вывод и работа с сетью

NIO.2

Тоже не нуждающийся в особом представлении новый API для доступа к файловой системе, масштабироемого асинхронного IO-взаимодействия, полноценной работы с zip/jar архивами как с файловой системой и прочего. Все нововведения имеет смысл вынести в отдельный топик. Ознакомиться с официальной документацией можно тут.

Поддержка стандартов

Добавлена поддержка SCTP для Solaris, SDP для поддержки InfitiBand на Linux и Solaris, поддержка появившегося в Windows Vista стека IPv6 и поддержка TLS 1.2

Безопасность и шифрование

Теперь доступны из коробки стандартные алгоритмы эллиптических кривых. Правда, в официальном релизе не дали указаний относительно того, где их найти. Поверхностный поиск по javax.crypto результатов не дал.

Базы данных

JDBC обновлён до 4.1, Rowset до версии 1.1. Подробнее можно почитать в документации: java.sql иjavax.sql.rowset.

Клиентская часть

Конвейер XRender для Java2D

Благодаря расширению XRender для X11, у Java2D появился доступ к большой части возможностей современных GPU.

Введение API для новых графических возможностей

В java 6u10 появилась поддержка новых фич вроде полупрозрачных окошек и окошек поизвольный формы, ровно как и смешивание тяжеловесной и легковесной графики. Теперь для этого появился API. Подробнее можно почитать в документации, и вполне возможно, что скоро на эту тему появится пост.

Новый look-and-feel

Добавлен новый look-and-feel. Как утверждают разработчики, он относится к новому поколению, но лично меня не впечатлило. Хотя, конечно, это всяко лучше, чем то, что было раньше.

Новый декаратор JXLayer

Про него не найти особо подробной информации, есть ссылка на официальный проект.

Новый синтезатор звука

На замену старому проприетарному синтезатору пришэл новый, под названием Gervill. Разработчики его хвалят, но я ничего на этот счёт сказать не могу.

Web

Обновлен стек XML, теперь используются версии JAXP 1.4, JAXB 2.2a, and JAX-WS 2.2.

Управление

MBean-ы теперь могут сообщать о загрузке процессора как всей системы, так и JVM и умеют отправлять уведомления, когда происходит сборка мусора.

Итак, покрыта большая часть нововведений. Пожалуйста, отпишитесь в комментариях, о чём бы вы хотели прочитать подробнее.


источник: http://habrahabr.ru/post/125202/

2 комментария:

  1. А так же уязвимость - http://www.opennet.ru/opennews/art.shtml?num=34669 ;)

    ОтветитьУдалить
    Ответы
    1. патч 7u7 уже вышел. У тебя запоздалый источник

      Удалить