Spec-Zone.ru › OpenJDK 24

Интерфейс MemorySegment.Scope

Включающий интерфейс:
MemorySegment
public static sealed interface MemorySegment.Scope
Область видимости моделирует жизненный цикл всех сегментов памяти, связанных с ней.

То есть, к сегменту памяти нельзя получить доступ, если связанная с ним область видимости не активна. Экземпляры областей видимости можно сравнивать на равенство. То есть, две области видимости считаются равными, если они обозначают один и тот же жизненный цикл.

Жизненный цикл сегмента памяти может быть либо неограниченным, либо ограниченным. Неограниченный жизненный цикл моделируется глобальной областью видимости. Глобальная область видимости всегда alive. Таким образом, сегмент, связанный с глобальной областью видимости, имеет тривиальные временные границы и всегда доступен. Сегменты, связанные с глобальной областью видимости:

  • Сегменты, полученные из глобальной области;
  • Сегменты, полученные из сырого адреса с помощью фабрики MemorySegment.ofAddress(long); и
  • Zero-length memory segments.

Напротив, ограниченный жизненный цикл моделируется областью видимости сегмента, которая может быть аннулирована, либо explicitly, либо автоматически, сборщиком мусора. Область видимости сегмента, которая аннулируется автоматически, является автоматической областью видимости. Автоматическая область видимости всегда alive, пока она доступна. Сегменты, связанные с автоматической областью видимости:

  • Сегменты, полученные из автоматической области;
  • Сегменты, полученные из массива Java, например, с использованием фабрики MemorySegment.ofArray(int[]);
  • Сегменты, полученные из буфера с использованием фабрики MemorySegment.ofBuffer(Buffer); и
  • Сегменты, полученные из поиска загрузчика.
Если два сегмента памяти получены из одного и того же буфера или массива, связанные с ними автоматические области видимости считаются равными, так как у двух сегментов одинаковый жизненный цикл:
byte[] arr = new byte[10];
MemorySegment segment1 = MemorySegment.ofArray(arr);
MemorySegment segment2 = MemorySegment.ofArray(arr);
assert segment1.scope().equals(segment2.scope());
С момента:
22

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object that)
Возвращает true, если предоставленный объект также является областью видимости, которая моделирует такой же жизненный цикл, как и эта область видимости.
int hashCode()
Возвращает хэш-код этого объекта области видимости.
boolean isAlive()
Возвращает true, если области памяти, лежащие в основе сегментов памяти, связанных с этой областью видимости, по-прежнему действительны.

Подробное описание методов

isAlive

boolean isAlive()
Возвращает true, если области памяти, лежащие в основе сегментов памяти, связанных с этой областью видимости, по-прежнему действительны.
Возвращает:
true, если области памяти, лежащие в основе сегментов памяти, связанных с этой областью видимости, по-прежнему действительны

equals

boolean equals(Object that)
Возвращает true, если предоставленный объект также является областью видимости, которая моделирует такой же жизненный цикл, как и эта область видимости.. В этом случае всегда верно, что this.isAlive() == ((Scope)that).isAlive().
Переопределяет:
equals в классе Object
Параметры:
that - тестируемый объект
Возвращает:
true, если предоставленный объект также является областью видимости, которая моделирует такой же жизненный цикл, как и эта область видимости
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Возвращает хэш-код этого объекта области видимости.
Переопределяет:
hashCode в классе Object
Требования к реализации:
Реализации этого метода подчиняются общему соглашению о Object.hashCode().
Возвращает:
хэш-код этого объекта области видимости
См. также:
  • equals(Object)

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/foreign/MemorySegment.Scope.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API