Компания Oracle анонсировала доступность Java SE 7 (Java Platform, Standard Edition 7), первый значительный релиз Java, выпущенный под управлением Oracle. Кроме большого числа новшеств, в новой версии сделан большой шаг навстречу реальной открытости платформы - в качестве эталонной реализации Java SE 7 использован не проприетарный пакет JDK, а его открытая реализация OpenJDK. Релиз Java SE 7 был сформирован при тесном сотрудничестве инженеров Oracle с участниками мировой экосистемы Java, благодаря работе комитета JCP (Java Community Process) и сообщества OpenJDK.

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

В Java SE 7 сохранена полная обратная совместимость с прошлыми выпусками платформы Java, все ранее написанные Java-проекты без изменений будут работоспособны при запуске под управлением новой версии. Поддержка Java SE 7 уже интегрирована в такие инструменты для разработчиков, как NetBeans 7.0, Eclipse Indigo (требуется установка специального плагина), IntelliJ IDEA 10.5 и Oracle JDeveloper. С момента выпуска JDK 6 в JDK 7 добавлено 1966 улучшений, 9018 изменений, исправлено 9494 ошибок и создано 147 тестовых сборок. Из других интересных фактов упомянуто, что Java используется на 97% корпоративных десктоп-систем, каждый год загружается около 1 миллиарда копий Java, сообщество насчитывает около 9 миллионов разработчиков на языке Java, в обиходе используется около 3 миллиардов устройств, на которых используются технологии Java.

Особенности Java SE 7:

  • Интеграция набора небольших языковых улучшений Java, развиваемых в рамках проекта Coin. Например, поддержка указания строк в выражениях "switch", использование "try" для ресурсов, улучшение обработки исключений (multi-catch) и т.п. Данные улучшения нацелены на повышение эффективности труда разработчиков и на упрощение выполнения типичных ежедневных задач, за счет сокращения размера требуемого для реализации задачи кода, использования более ясного синтаксиса и создания более читаемого кода;
  • Поддержка языков программирования с динамической типизацией, таких как Ruby, Python and JavaScript. Улучшение включает в себя набор расширений к JVM и Java, а также новое Java SE API (добавлена инструкция InvokeDynamic), позволяющее достичь для реализаций динамических языков, работающих под управлением JVM, уровня производительности языка Java;
  • Ориентированный на многоядерные системы API, позволяющий упростить разбиение задачи на части, которые будут выполняться параллельно на разных процессорных ядрах (Fork/Join Framework);
  • Новый API для ввода/вывода (NIO.2) и новый API для работы с файловой системой (File System API), поддерживающие асинхронный ввод/вывод и multicast, позволяющие получить доступ к большему числу атрибутов файлов и выводящие расширенную информацию в случае ошибок. Дополнительно подготовлен модуль с поддержкой прямого ввода/вывода из ZIP и JAR-архивов;
  • Новые сетевые функции и возможности, связанные с безопасностью. Например, поддержка TLS 1.2 и режима шифрования по эллиптическим кривым;
  • Расширенная поддержка интернационализации и локалей, включая поддержку Unicode 6.0, IETF BCP 47 (Tags for Identifying Languages) и UTR 35 (Local Data Markup Language). Возможность раздельного указания локалей для операций форматирования и для пользовательского интерфейса;
  • Поддержка сетевых протоколов SCTP (Stream Control Transmission Protocol) и SDP (Sockets Direct Protocol);
  • Поддержка загрузки классов по URL;
  • Улучшения связанные с поддержкой коллекций;
  • Обновленный XML-стек, включающий JAXP 1.4, JAXB 2.2a и JAX-WS 2.2;
  • Усовершенствованный ClassLoader API, позволяющий избежать возникновения взаимных блокировок при использовании не иерархических топологий загрузки классов;
  • В Java2D добавлен модуль вывода, использующий XRender, что позволяет более полно задействовать возможности современных GPU;
  • Визуальное оформление Nimbus и декоратор JLayer для GUI-тулкита Swing, позволяющие создавать более современные интерфейсы пользователя;
  • Обновление версий большого числа библиотек классов, новые версии Rowset 1.1 и JDBC 4.1.

В JDK 7 не включены Лямбда-выражения, модульная система Jigsaw, аннотации для Java-типов, Swing application framework (JSR296) и поддержка языковых конструкций для работы с коллекциями. Данные возможности будут реализованы в JDK 8, релиз которого намечен на 2012 год.

Источник: http://www.opennet.ru/opennews/art.shtml?num=31332