TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.38K subscribers
Post #8641 337
Value-классы в JDK 28: где JVM убирает аллокации, а где возвращает их

JEP 401 вошёл в JDK 28 как предварительная возможность. Отказ от идентичности позволяет JVM хранить поля без ссылок и раскладывать компоненты по регистрам или стеку, но ускорение не гарантировано.

Неизменяемые поля JVM может хранить плоско, а для изменяемых выбирает ссылку, чтобы потоки не увидели значение из частей разных записей. JIT-компилятор C2 способен убрать создание value record в цикле, но стирание типов и виртуальный вызов могут вернуть объект и аллокацию.

Перед миграцией проверьте горячие участки и переходы между представлениями: три таких случая разобраны в статье Value Classes Still Need Compiler Sympathy.
Johan Sjölén's blog Value Classes Still Need Compiler Sympathy This post discusses preview features in JDK 28\nJEP 401, a major Valhalla milestone, has been integrated as a preview feature in JDK 28. This is very exciting, as value classes increase both our ability to communicate the semantics of our programs to others…
More from @a_cup_of_java
  1. Sep 23, 2026Как показать вызовы инструментов в интерфейсе на Spring AI 2.0 Spring AI 2.0 вынес цикл вы…
  2. Sep 23, 2026Quarkus 3.29: что изменилось в тестах CDI-компонентов QuarkusComponentTest запускает не вс…
  3. Sep 23, 2026Как Spring AI 2.0 исправляет структурированный вывод по JSON Schema Обычный entity(TalkSub…
  4. Sep 22, 2026Как профилировать Java-приложения с JDK Flight Recorder JDK Flight Recorder (JFR) встроен…
  5. Sep 22, 2026Quarkus 3.31.2: как измерить покрытие runtime-модулей расширений До версии 3.31.2 расширен…
  6. Sep 22, 2026В Quarkus 3.37.0 появился новый вход к реляционным данным Экспериментальное расширение Qua…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →