Последняя версия Java, JDK 10, была выпущена всего через шесть месяцев после того, как Java 9 попала на полки магазинов. Эта версия добавляет вывод типа локальной переменной среди других улучшений.
Одним из аспектов выпуска является то, что с этого момента больше не будет бесплатных выпусков поддержки Java 9, хотя пользователи Java 10 и Java 8 получат бесплатную поддержку от Oracle. Причина, по которой Java 8 продолжает поддерживаться, заключается в том, что это была самая последняя версия LTS (Долгосрочная поддержка) Java. Поддержка Java 8 будет продолжаться до четырех месяцев после выпуска следующей LTS-версии Java, которая будет Java 11. Релиз запланирован на сентябрь 2018 года.
Улучшения в Java 10 начинаются с поддержки вывода типа локальной переменной. Как следует из названия, это расширяет вывод типа на объявления локальных переменных с инициализаторами. Область вывода типов была значительно расширена в Java SE 8, включая расширенный вывод для вложенных и цепных вызовов общих методов, а также вывод для лямбда-формалов. Это облегчило создание API, предназначенных для цепочки вызовов. Вывод типа локальной переменной обеспечивает аналогичный эффект в менее жестко структурированных API.
В другом месте этого выпуска лес JDK был объединен в единый репозиторий для упрощения и оптимизации разработки. Интерфейс сборщика мусора также был переписан, чтобы улучшить изоляцию исходного кода различных сборщиков мусора. Это упрощает добавление нового сборщика мусора, не нарушая текущую базу кода.
Другие улучшения включают совместное использование данных классов приложений для улучшения запуска и занимаемой площади, а также локальные рукопожатия потоков. Они обеспечивают способ выполнения обратного вызова в потоках без выполнения глобальной точки безопасности виртуальной машины.
Также был добавлен экспериментальный JIT-компилятор на основе Java. Graal-это JIT-компилятор на основе Java, на котором был основан экспериментальный компилятор AOT, представленный в JDK 9. Включение его в качестве экспериментального JIT-компилятора является одной из инициатив проекта Metropolis и является следующим шагом в исследовании возможности JIT на основе Java для JDK. Project Metropolis-это место для изучения и инкубации передовых методов реализации «Java-на-Java» для HotSpot, реализации OpenJDK виртуальной машины Java.