Лоис Фолтан из компании Oracle официально подтвердила, что реализация предложения JEP 401 («Классы и объекты значений») будет интегрирована в основной репозиторий OpenJDK. Данная функциональность запланирована для включения в релиз JDK 28, который ожидается в марте 2027 года. На первых порах нововведение будет доступно как экспериментальная функция, отключенная по умолчанию.
Суть проекта Valhalla
Главная концепция проекта Valhalla описывается разработчиками фразой: «код как класс, работает как int». Основная цель — внедрение классов значений (Value classes), которые привносят в Java принципиально новые возможности для оптимизации:
- Отсутствие идентичности: в отличие от стандартных объектов, два экземпляра с идентичным набором полей считаются равными.
- Запрет на синхронизацию: попытка использования блока synchronized с такими объектами приведет к возникновению ошибки IdentityException.
- Скаляризация: возможность разложения объектов на отдельные поля без необходимости выделения памяти под полноценный объект, а также плотное размещение данных в массивах и полях.
Изменения в синтаксисе
Для работы с новыми типами в язык вводится ключевое слово value. Применение такого подхода позволяет массивам (например, Point[]) хранить значения напрямую, а не хранить ссылки на объекты, что значительно повышает производительность и эффективность использования кэш-памяти процессора.





