インタフェースjdk.incubator.foreign.MemoryAddressの
使用

MemoryAddressを使用するパッケージ
パッケージ
説明
Javaから直接、低レベルで効率的な外部メモリー/ファンクション・アクセスをサポートするクラス。
  • jdk.incubator.foreignでのMemoryAddressの使用

    MemoryAddressとして宣言されたjdk.incubator.foreignのフィールド
    修飾子と型
    フィールド
    説明
    static final MemoryAddress
    MemoryAddress.NULL
    ネイティブ・メモリー・アドレス・インスタンスは、「グローバル」リソース・スコープに関連付けられたNULLアドレスをモデリングします。
    MemoryAddressを返すjdk.incubator.foreignのメソッド
    修飾子と型
    メソッド
    説明
    MemoryAddress.addOffset(long offset)
    指定されたオフセット(バイト単位)を使用して、現在のメモリー・アドレスから新しいメモリー・アドレスを生成します(負の場合もあります)。
    Addressable.address()
    このオブジェクトをMemoryAddressインスタンスにマップします。
    CLinker.VaList.address()
    このインスタンスに関連付けられたC va_listのメモリー・アドレスを返します。
    MemoryAddress.address()
     
    MemorySegment.address()
    このメモリー・セグメントに関連付けられているベース・メモリー・アドレス。
    CLinker.allocateMemory(long size)
    mallocを使用して、指定されたサイズのメモリーを割り当てます。
    MemoryAccess.getAddress(MemorySegment segment)
    バイト順序をByteOrder.nativeOrder()に設定して、指定されたセグメントからメモリー・アドレスを読み取ります。
    MemoryAccess.getAddressAtIndex(MemorySegment segment, long index)
    バイト順序をByteOrder.nativeOrder()に設定して、指定されたセグメントおよび要素索引からメモリー・アドレスを読み取ります。
    MemoryAccess.getAddressAtOffset(MemorySegment segment, long offset)
    指定されたセグメントおよびオフセットから、バイト順序をByteOrder.nativeOrder()に設定してメモリー・アドレスを読み取ります。
    MemoryAddress.ofLong(long value)
    指定されたロング・アドレスからネイティブ・メモリー・アドレス・インスタンスを取得します。
    CLinker.upcallStub(MethodHandle target, FunctionDescriptor function, ResourceScope scope)
    指定されたスコープを持つネイティブ・スタブを、他の外部関数(関数ポインタとして)に渡すことができます。このようなファンクション・ポインタをネイティブ・コードからコールすると、指定されたメソッド・ハンドルが実行されます。
    CLinker.VaList.vargAsAddress(MemoryLayout layout)
    次の値をMemoryAddressとして読み取り、このvaリストの位置を進めます。
    MemoryAddressの引数を持つ型を返すjdk.incubator.foreignのメソッド
    修飾子と型
    メソッド
    説明
    SymbolLookup.lookup(String name)
    このルックアップで、指定された名前のシンボルをルックアップします。
    MemoryAddressのパラメータを持つjdk.incubator.foreignのメソッド
    修飾子と型
    メソッド
    説明
    MemorySegment.asSlice(MemoryAddress newBase)
    ベース・アドレスが指定されたアドレスであり、このセグメント・サイズからこのセグメント(segmentOffset(MemorySegment)を参照してください)に相対的なアドレス・オフセットを減算して新しいサイズが計算される新しいメモリー・セグメント・ビューを取得します。
    MemorySegment.asSlice(MemoryAddress newBase, long newSize)
    ベース・アドレスが指定されたアドレスであり、新しいサイズが指定された引数で指定されている新しいメモリー・セグメント・ビューを取得します。
    static void
    CLinker.freeMemory(MemoryAddress addr)
    指定されたメモリー・アドレスが指すメモリーを解放します。
    CLinker.VaList.ofAddress(MemoryAddress address)
    「グローバル」リソース・スコープによって支えられた既存のC va_listを指すメモリー・アドレスから新しいVaListインスタンスを構築します。
    CLinker.VaList.ofAddress(MemoryAddress address, ResourceScope scope)
    指定されたリソース・スコープを持つ既存のC va_listを指し示すメモリー・アドレスから新しいVaListインスタンスを構築します。
    static String
    指定されたアドレスに格納されているUTF-8エンコードされたnull終端のC文字列をJava文字列に変換します。