Проект 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
