Ответ 1
В прошлом в основных выпусках Java часто имелись далеко идущие функции, которые оказали огромное влияние на код, который вы могли и должны писать, например, обобщенные (Java 5) и функциональные конструкции (Java 8).
В Java 9 Oracle представила новую систему модульности (проект Jigsaw), которая также оказывает огромное влияние на архитектуру JVM (хотя и не так сильно на синтаксис языка). Им пришлось два раза откладывать выпуск Java 9 из-за разногласий по поводу реализации этой функции с другими влиятельными членами сообщества Java.
Предположительно извлекая урок из этого, Oracle решила пересмотреть стиль разработки для Java, чтобы сделать его более инкрементным или "гибким", если хотите. Вместо того, чтобы загружать основные версии, которые иногда могут занимать много лет, они хотят публиковать основные версии с меньшим количеством новых функций, каждый с фиксированным графиком выпуска каждые шесть месяцев.
Java 9 и Java 10 - первые две версии, запланированные для этой новой модели выпуска, а Java 9 уже устарела с выпуском Java 10. Java 11, выпущенная в сентябре 2018 года, является Долгосрочная поддержка (LTS) с поддержкой до 2026 года. Это очень похоже на то, к чему многие привыкли в модели релизов Ubuntu (Кстати, они даже планировали заменить номера версий на что-то, включающее год и месяц выпуска или около того, аналогично тому, что Canonical делает с Ubuntu, но почему-то отбросил эту идею).
Использование не Java-версии Java теперь подразумевает обязательство обновлять программное обеспечение, использующее JDK, каждые 6 месяцев. Это не должно быть столь же сложным, как миграция кода из одной основной версии Java в другую в прошлом, потому что, как описано, языковые изменения должны происходить более постепенно, но это определенно необходимо учитывать. Если вы не хотите брать на себя это обязательство, вам следует придерживаться версий LTS, что означает придерживаться Java 8 или Java 11.
Для нового проекта "с нуля" Java 11, вероятно, является лучшим выбором на данный момент. Но может быть необходимо придерживаться Java 8, если используемый инструментарий еще не полностью поддерживает Java 11.
Очевидно, что в будущем Oracle хочет выпускать версию LTS каждые три года или каждые 6-е выпуски, поэтому следующий выпуск LTS следует ожидать после Java 11 - это Java 17 в сентябре 2021 года.