Корпорация Oracle представила релиз Java Development Kit (JDK) 8, Update 40 (JDK 8u40), содержащий серию усовершенствований для Java-разработчиков.
Последний выпуск стандартного пакета Java SE в реализации Oracle, JDK 8u40, включает улучшения в производительности, масштабируемости и удобстве администрирования Java, которые позволят Java-разработчикам проще и быстрее вносить свои новшества и улучшать сервисы приложений. Релиз также содержит ряд обновлений пакета JavaFX.
Как говорят в Oracle, Java используется буквально повсюду, начиная с небольших устройств, включая компоненты Интернета вещей, до решений для «умного города». Поэтому Oracle активно и тесно сотрудничает с ключевыми партнерами в экосистеме Java, чтобы постоянно модернизировать платформу Java и создавать в ней инновации.
«Умножение числа мобильных устройств и появление Интернета вещей создает мир, опутанный мириадами подключений, но ни одно из них не было бы возможным без заложенной в их основу фундаментальной технологии, каковой является Java, — сказал Джордж Сааб, вице-президент Oracle по разработке Java Platform. — Сегодняшние обновления JDK 8, важные и для разработчиков, и для предприятий, продолжают мостить путь в будущее Java и укрепляют роль Java как опоры для сегодняшних и завтрашних революционных бизнес-решений».
По информации Oracle, с момента своего выпуска в прошлом году платформа Java SE 8 вышла на рекордные темпы внедрения. В целом они значительно превышают показатели за аналогичный период после выхода Java SE 7.
В новый релиз вошли усовершенствования сборщика мусора Garbage First (G1). G1 также известен как JDK Enhancement Proposal 156 (JEP156). Улучшенная версия ограничивает вероятность долгих пауз, когда система освобождает ресурсы. Стали более редкими полные сборы мусора с выгрузкой классов или любыми другими критичными операциями. Это достигнуто благодаря тому, что выгрузка классов теперь происходит по окончании сопутствующих циклов пометки на удаление.
В новом релизе также присутствует динамическая активация Java Flight Recorder (JFR), упрощающая использование Oracle Java SE Advanced. JFR теперь можно динамически запускать из командной строки или Java Mission Control (JMC), независимо от первичных стартовых параметров. Раньше это делалось только путем остановки и перезапуска с соответствующими параметрами в командной строке. Динамическая активация JFR позволяет решать эксплуатационные проблемы, не прибегая к остановкам, которые могут нарушать соглашения об уровне сервиса и создавать неприятности для конечных пользователей.
В комплект JDK 8u40 теперь включаются инструменты JMC 5.5, основанные на Eclipse 4.4. JMC 5.5 также содержит плагины, которые теперь подписаны и по умолчанию не показывают скрытые методы Lambda Form. А обновление Lambda Form Reduction and Caching (JEP 210) уменьшает потребности приложений в оперативной памяти и улучшает производительность динамических языков.
Вдобавок Oracle внесла улучшения в родной упаковщик, позволяющие разработчикам создавать приложения, не требующие, чтобы на стороне клиента была установлена среда Java Runtime. Эти самодостаточные приложения можно размещать на таких ресурсах, как Mac App Store. Разработчик приложения будет иметь полный контроль над циклом исполнения и точками входа приложения.
Новый инструмент обновления данных об административно устанавливаемых часовых поясах может использовать правила перевода часов (tzdata) из базы данных организации IANA (Internet Assigned Numbers Authority) и конвертировать данные в нужный формат, требуемый Java Runtime Environment (JRE). Это позволяет немедленно вносить изменения в правила часовых поясов JDK/JRE сразу после поступления обновлений из IANA.
В новом релизе также по-новому поддерживается Nashorn. Задачей Nashorn является реализация в Java облегченной и высокопроизводительной среды исполнения JavaScript поверх родной Java Virtual Machine (JVM). В релиз включены многочисленные оптимизации Nashorn, в том числе поддержка динамических языков. Добавлен и Nashorn Class Filter, обеспечивающий тонко гранулированный контроль над доступом к Java-классам из кода JavaScript через новый интерфейс фильтрации.
Кроме того релиз JDK 8u40 обеспечивает масштабируемый контроль за расходованием памяти. Внесенные в эту функцию улучшения позволяют ее использовать без особого ущерба для производительности. В то же время эта функция дает пользователям возможность диагностировать утечки памяти JVM. Еще одной особенностью является повышенная производительность криптографических алгоритмов SHA (Secure Hash Algorithm). Это касается систем класса SPARC, которые интенсивно используются для подписи сертификатов в Web of Trust. SHA-производительность критически важна для безопасности Интернета, так как браузеры начали отклонять SHA-1 и требовать версии SHA-256 и выше, которые создают большие вычислительные нагрузки.
Улучшена реакция JVM на коэффициент загруженности ОЗУ (memory pressure). «Memory pressure» характеризует уровень использования имеющейся в системе оперативной памяти. Эту новую функцию можно задействовать для уменьшения занимаемого объема памяти системы, когда развертывается много JVM, и контроля объема памяти, выделяемой каждой JVM, во избежание появления ошибок Out of Memory.
В числе обновлений и улучшений JavaFX следует упомянуть возможность модернизировать стек JavaFX на Mac OS X и расширение доступности JavaFX. По информации Oracle, медиастек JavaFX на Mac OS X перенесен с QTKit и Quicktime, которые теперь не рекомендуются к использованию, в более новый фреймворк AVFoundation. Благодаря этому разработчики, использующие медиастек JavaFX, могут получить одобрение в Mac App Store и возможность выставлять там свои приложения. Также улучшены существующие средства управления JavaFX для поддержки вспомогательных технологий, необходимых людям с физическими ограничениями, и разработчикам предоставляются открытые API для создания собственных средств такой поддержки.