4.14. Foreign Function and Memory API (第 3 プレビュー)
Red Hat build of OpenJDK 21 には、Foreign Function and Memory (FFM) API が含まれています。この API は、Java プログラムが Java ランタイム外のコードとデータを相互運用できるようにするプレビュー機能です。FFM API は、JVM 外部の外部関数を効率的に呼び出し、JVM が管理しない外部メモリーに安全にアクセスできます。
FFM API は、既存の Java Native Interface (JNI) を pure Java 開発モデルに置き換え、ネイティブライブラリーを呼び出し、ネイティブデータを処理するためのより効率的で、クリーンかつ安全な方法を提供します。
FFM API は、ライブラリーおよびアプリケーション内のクライアントコードが次のタスクを実行できるようにするクラスとインターフェイスを定義します。
-
MemorySegment
、Arena
、およびSegmentAllocator
インターフェイスを使用して、外部メモリーの割り当てと割り当て解除を制御します。 -
MemoryLayout
およびVarHandle
インターフェイスを使用して、構造化外部メモリーを操作およびアクセスします。 -
Linker
、FunctionDescriptor
、SymbolLookup
インターフェイスを使用して外部関数を呼び出します。
FFM API は、java.base
モジュールの java.lang.foreign
パッケージにあります。
FFM API は Java 言語への実験的な追加機能であり、今後のバージョンで改善される可能性がありますが、下位互換性は保証されません。
詳細は、JEP 442: Foreign Function & Memory API (Third Preview) を参照してください。