Описание тега project-valhalla
URL-адрес проекта находится здесь.
Этот проект все еще находится в стадии разработки. В Интернете уже существуют многочисленные ресурсы, чтобы осветить потенциальные преимущества, которые этот проект принесет JVM.
Типы значений, в частности, позволят "простым" экземплярам объектов избавиться от того, что называется их "идентичностью объекта"; действительно, даже скелетныйObject
в Java приносит с собой некоторые метаданные (его идентичность), которые в большинстве случаев не будут использоваться (учтите, что каждый экземпляр можно использовать в качестве монитора; см. synchronized
); этот проект позволит оставить эту идентичность там, где она не нужна. Пока неясно, как это должно быть сделано технически, но варианты реализации уже существуют (см. Ссылку выше).
Специализация на дженериках будет означать, что List<int>
будет возможным объявлением типа в будущем. Исторически сложилось так, что в Java было стирание типов, но эта функция означает, что в будущем компилятор не сможет довольствоваться только проверкой границ универсальных шаблонов: он должен будет иметь возможность правильно генерировать код для специализированных версий классы, аргументы типа которых являются примитивами, если такие версии вообще существуют, при сохранении обратной совместимости.