JEP 401 (Value Objects) предложили включить в preview для JDK 28. Это один из ключевых результатов многолетнего проекта Valhalla.
❇️ В чём идея:
Сегодня почти любой пользовательский тип в Java — это объект с идентичностью: отдельная аллокация, заголовок объекта и работа через ссылку.
Value Objects отказываются от идентичности и описываются только своим состоянием.
Благодаря этому JVM получает больше свободы для оптимизаций: может хранить такие объекты компактнее, уменьшать количество аллокаций и снижать нагрузку на GC.
❇️ Что это даёт:
— Более эффективное хранение данных.
— Меньше накладных расходов на память и сборку мусора.
— Производительность, которая во многих случаях может приблизиться к примитивам.
Цена — отсутствие объектной идентичности: нельзя использовать synchronized, полагаться на System.identityHashCode() и другие identity-зависимые механизмы.
💡 Если коротко: record сделал работу с данными удобнее, а Value Objects делают её ещё и эффективнее на уровне JVM.
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#CoreJava
