インタフェースMemorySegment.Scope

含まれているインタフェース:
MemorySegment

public static sealed interface MemorySegment.Scope
スコープは、関連付けられているすべてのメモリー・セグメントのlifetimeをモデル化します。

つまり、メモリー・セグメントは、関連するスコープがaliveでない場合はアクセスできません。 スコープ・インスタンスは等価性を比較できます。 つまり、同じ存続期間を示す場合、2つのスコープはequalとみなされます。

メモリー・セグメントの存続期間は、「制限なし」または「有限」のいずれかです。 バインドされていない存続期間は、「グローバル・スコープ」でモデル化されます。 グローバル・スコープは常にaliveです。 そのため、グローバル・スコープに関連付けられたセグメントは、簡単な時間的境界を備えており、常にアクセスできます。 グローバル・スコープに関連付けられたセグメントは次のとおりです。

逆に、バインドされた存続期間は、explicitlyまたはガベージ・コレクタによって自動的に無効化できるセグメント・スコープでモデル化されます。 自動的に無効化されるセグメント・スコープは、「自動スコープ」です。 自動スコープは、「到達可能」であるかぎり、常にaliveです。 自動スコープに関連付けられたセグメントは次のとおりです。

2つのメモリー・セグメントが同じ「バッファ」または「配列」から取得される場合、2つのセグメントの存続期間が同じであるため、そのセグメントに関連付けられた自動スコープはequalとみなされます。
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
    このスコープ・オブジェクトのハッシュ・コードを返します。
    boolean
    このスコープに関連付けられたメモリー・セグメントをバッキングするメモリーのリージョンがまだ有効な場合は、trueを返します。
  • メソッドの詳細

    • isAlive

      boolean isAlive()
      このスコープに関連付けられたメモリー・セグメントをバッキングするメモリーのリージョンがまだ有効な場合は、trueを返します。
      戻り値:
      true。このスコープに関連付けられたメモリー・セグメントをバッキングするメモリーのリージョンがまだ有効な場合
    • equals

      boolean equals(Object that)
      指定されたオブジェクトがスコープでもある場合、trueを返します。このスコープは、このスコープによってモデル化されたものと同じ存続期間をモデル化します。 この場合、常にthis.isAlive() == ((Scope)that).isAlive()になります。
      オーバーライド:
      equals、クラスObject
      パラメータ:
      that - テストするオブジェクト
      戻り値:
      true。指定されたオブジェクトがスコープでもある場合、このスコープによってモデル化されたものと同じ存続期間をモデル化します。
      関連項目:
    • hashCode

      int hashCode()
      このスコープ・オブジェクトのハッシュ・コードを返します。
      オーバーライド:
      hashCode、クラスObject
      実装要件:
      このメソッドの実装は、Object.hashCode()の一般的な契約に従います。
      戻り値:
      このスコープ・オブジェクトのハッシュ・コード
      関連項目: