MemorySegmentpublic static sealed interface MemorySegment.Scope
That is, a memory segment cannot be accessed if its associated scope is not alive. Scope instances can be compared for equality. That is, two scopes are considered equal if they denote the same lifetime.
The lifetime of a memory segment can be either unbounded or bounded. An unbounded lifetime is modeled with the global scope. The global scope is always alive. As such, a segment associated with the global scope features trivial temporal bounds and is always accessible. Segments associated with the global scope are:
MemorySegment.ofAddress(long) factory; andZero-length memory segments. Conversely, a bounded lifetime is modeled with a segment scope that can be invalidated, either explicitly, or automatically, by the garbage collector. A segment scope that is invalidated automatically is an automatic scope. An automatic scope is always alive as long as it is reachable. Segments associated with an automatic scope are:
MemorySegment.ofArray(int[]) factory;MemorySegment.ofBuffer(Buffer) factory; andbyte[] arr = new byte[10];
MemorySegment segment1 = MemorySegment.ofArray(arr);
MemorySegment segment2 = MemorySegment.ofArray(arr);
assert segment1.scope().equals(segment2.scope());
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
equals |
Returns true, if the provided object is also a scope, which models the same lifetime as that modeled by this scope. |
int |
hashCode() |
Returns the hash code of this scope object. |
boolean |
isAlive() |
Returns true, if the regions of memory backing the memory segments associated with this scope are still valid. |
boolean isAlive()
true, if the regions of memory backing the memory segments associated with this scope are still valid.true, if the regions of memory backing the memory segments associated with this scope are still validboolean equals(Object that)
true, if the provided object is also a scope, which models the same lifetime as that modeled by this scope.. In that case, it is always the case that this.isAlive() == ((Scope)that).isAlive().int hashCode()
hashCode in class Object
Object.hashCode().
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/foreign/MemorySegment.Scope.html