Java 10: временная версияция для предсказуемых полугодовых обновлений
JEP 322 — Time-Based Release Versioning
С Java 10 Oracle ввела строгую временную модель версионирования. Мажорные релизы выходят каждые 6 месяцев (в марте и сентябре). Релизы делятся на три категории:
- Feature Release — новые языковые фичи, JVM-функции, API, удаление/депрекация API. Время фиксировано, набор фич — нет. Неуспевшие фичи переносятся на следующий релиз.
- Update Release — багфиксы, исправления безопасности, регрессии. Выходят квартально (январь, апрель, июль, октябрь). Каждый Feature Release получает два Update Release до следующего Feature Release.
- Long Term Support (LTS) Release — объявляются каждые 3 года (начиная с сентября 2018). Oracle предоставляет поддержку и обновления 3 года. Для корпоративных продакшн-развёртываний.
Формат версии
$FEATURE.$INTERIM.$UPDATE.$PATCH
- $FEATURE — номер мажорного фич-релиза (инкрементируется каждые 6 месяцев). Для Java 10 — 10.
- $INTERIM — не-фича, не-апдейт релиз (багфиксы, улучшения без несовместимостей). Для Feature Release — 0.
- $UPDATE — номер Update Release после Feature Release. Например, апрель 2018 —
JDK 10.0.1, июль —10.0.2. - $PATCH — экстренные релизы для критических проблем.
Пример: получение версии во время выполнения
public class Tester {
public static void main(String[] args) {
Runtime.Version version = Runtime.version();
System.out.printf(" feature: %s%n interim: %s%n update: %s%n patch: %s%n",
version.feature(), version.interim(), version.update(), version.patch());
}
}
Вывод (пример для JDK 10.0.2)
feature: 10
interim: 0
update: 2
patch: 0
java
- Освоение операторов Java: типы, синтаксис и практические примеры
- Комментарии в Java: типы, использование и лучшие практики
- Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
- Освоение строк в Java: создание, методы и лучшие практики
- Интерфейсы в Java: концепции, реализация и лучшие практики
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Try-with-resources в Java: автоматическое управление ресурсами
- Аннотации в Java: типы, размещение и практические примеры
- Assertions в Java: практическое руководство по обнаружению багов и обеспечению надежности кода
- Понимание Java Vector: использование, особенности и сравнение с ArrayList