Проект Valhalla будет включён в основную ветку JDK

Лоис Фолтан (Lois Foltan) из компании Oracle подтвердила, что реализация предложения JEP 401 («Value Classes and Objects») будет интегрирована в основной репозиторий OpenJDK и запланирована для включение в релиз JDK 28, намеченный на март 2027 года, в качестве отключённой по умолчанию экспериментальной функции.

Ключевая идея проекта Valhalla: «код как класс, работает как int». Проектом водится понятие классов значений (Value classes), позволяющих создавать типы, которые:

  • не имеют идентичности (в отличие от обычных объектов, два экземпляра с одинаковыми полями считаются равными).
  • не могут быть синхронизированы (synchronized вызывает IdentityException).
  • могут быть скаляризованы (разложены на поля без выделения памяти) или выровнены в массивах и полях (данные хранятся плотно и последовательно).

Синтаксис подразумевает использование нового ключевого слова «value»:

   value class Point {
       final int x;
       final int y;
       Point(int x, int y) { this.x = x; this.y = y; }
   }

В данном примере «Point[]» теперь может хранить значения напрямую, а не ссылки на объекты.

Источник: http://www.opennet.ru/opennews/art.shtml? num=66010

©  OpenNet