Java Runtime Environment (JRE) - исполнительная среда созданная Sun Microsystems позволяющая запускать и использовать приложения написанные на языке программирования Java. Состоит из виртуальной машины - Java Virtual Machine и библиотеки Java-классов. На языке Java написано множество программ и игр, особенно тех, для которых важна мобильность. Некоторые веб-страницы также используют Java. Одним из преимуществ языка Java является его кроссплатформенность, то есть приложения написанные на этом языке можно использовать на разных операционных системах где установлен Java Runtime Environment (JRE).
JShellOracle представила новый инструмент под названием «JShell». Он используется для тестирования и использования в консоли разных конструкций, например классов, интерфейсов, перечислений, объектов, операторов и т.д.
Неизменяемые объекты List, Set и Map «из коробки»Oracle представила несколько удобных методов для создания неизменяемых List, Set, Map и Map.Entry объектов без использования дополнительных классов.
Private методы в интерфейсахДля избавления от нагромождения и переизбытка кода Oracle добавила private методы в интерфейсы Java SE 9. Начиная с девятой версии, мы также сможем создавать private static методы в интерфейсах с помощью private.
Модульная системаОдним из самых значительных изменений является появление модульной системы. До Java 9 мы использовали JAR-файлы для разработки приложений, базирующихся на Java. Однако, эта архитектура имеет несколько ограничений и недостатков. Для их устранения и внедрили модульную систему. Это нововведение является частью проекта Jigsaw, который разрабатывается для того, чтобы программисты могли разбивать программы на независимые и межпрограммные модули.
Улучшение APIВ Java SE 9 произведены улучшения по части API. Добавлены несколько новых классов и методов для более удобного управления действиями операционной системы.
Изменения в try-with-resourcesВ Java SE 9 внесено несколько изменений в Try-With-Resources, чтобы повысить читаемость.
Новшества в CompletableFuture APIВ Java 9 Oracle также улучшена CompletableFuture API для решения проблемы, появившихся в Java SE 8.
Реактивное программированиеВ Scala, Play, Akka уже были интегрированы reactive streams. Oracle решила добавить Reactive Streams API в Java SE 9.
Java SE 9 Reactive Streams API — фреймворк для реализации асинхронных, масштабируемых и параллельных приложений с использованием Java.
Дополнительные улучшения в классахВ Java SE 9 Oracle добавила несколько полезных методов в java.util.Optional
Улучшения Stream APIВ новой версии появилось как минимум четыре метода java.util.Stream. Как и stream, все они стандартные. Наиболее важными являются dropWhile и takeWhile методы.
Расширенные аннотации @DeprecatedВ Java 9 добавили возможности работы с устаревшими API. Например, появились инструменты для их анализа — forRemoval и since.
HTTP/2 клиентНовый HTTP-клиент для поддержки протоколов HTTP/2 и WebSocket. Они заменяют HttpURLConnection API на новый, более производительный. Он поддерживает как синхронный, так и асинхронный режимы.
API для изображений с разными разрешениямиНовый API для изображений разных разрешений. Наиболее важным является интерфейс MultiResolutionImage доступный в пакете java.awt.image.
Подробный список нововведений: