- 含まれているインタフェース:
MemorySegment
public static sealed interface MemorySegment.Scope
スコープは、関連付けられているすべてのメモリー・セグメントのlifetimeをモデル化します。
つまり、メモリー・セグメントは、関連するスコープがaliveでない場合はアクセスできません。 スコープ・インスタンスは等価性を比較できます。 つまり、同じ存続期間を示す場合、2つのスコープはequalとみなされます。
メモリー・セグメントの存続期間は、「制限なし」または「有限」のいずれかです。 バインドされていない存続期間は、「グローバル・スコープ」でモデル化されます。 グローバル・スコープは常にalive
です。 そのため、グローバル・スコープに関連付けられたセグメントは、簡単な時間的境界を備えており、常にアクセスできます。 グローバル・スコープに関連付けられたセグメントは次のとおりです。
- 「グローバル・アリーナ」から取得したセグメント。
MemorySegment.ofAddress(long)
ファクトリを使用してRAWアドレスから取得されたセグメント。- 長さ0のメモリー・セグメント。
逆に、バインドされた存続期間は、explicitly
またはガベージ・コレクタによって自動的に無効化できるセグメント・スコープでモデル化されます。 自動的に無効化されるセグメント・スコープは、「自動スコープ」です。 自動スコープは、「到達可能」であるかぎり、常にalive
です。 自動スコープに関連付けられたセグメントは次のとおりです。
- 「自動アリーナ」から取得されたセグメント。
MemorySegment.ofArray(int[])
ファクトリを使用するなど、Java配列から取得したセグメント。MemorySegment.ofBuffer(Buffer)
ファクトリを使用してバッファから取得されたセグメント。- 「ローダー・ルックアップ」から取得したセグメント。
byte[] arr = new byte[10];
MemorySegment segment1 = MemorySegment.ofArray(arr);
MemorySegment segment2 = MemorySegment.ofArray(arr);
assert segment1.scope().equals(segment2.scope());
-
メソッドのサマリー
-
メソッドの詳細
-
isAlive
boolean isAlive()このスコープに関連付けられたメモリー・セグメントをバッキングするメモリーのリージョンがまだ有効な場合は、true
を返します。- 戻り値:
true
。このスコープに関連付けられたメモリー・セグメントをバッキングするメモリーのリージョンがまだ有効な場合
-
equals
-
hashCode
int hashCode()このスコープ・オブジェクトのハッシュ・コードを返します。- オーバーライド:
hashCode
、クラスObject
- 実装要件:
- このメソッドの実装は、
Object.hashCode()
の一般的な契約に従います。 - 戻り値:
- このスコープ・オブジェクトのハッシュ・コード
- 関連項目:
-