Java では、NIO ダイレクト バッファによって割り当てられたメモリはsun.misc.Cleaner
、オブジェクトのファイナライズよりも効率的ないくつかの特別なファントム参照であるインスタンスで解放されます。
このクリーナー メカニズムは、JVM でダイレクト バッファー サブクラス専用にハードコーディングされていますか?それとも、カスタム コンポーネントでクリーナーを使用することは可能ですか (たとえば、カスタム ダイレクト バイト バッファーを作成します)?
ここでは、既存の nio ダイレクト バッファのクリーナー フィールドを取得することについては話していません。メモリを手動で解放することについても話していません。これは、直接メモリを割り当て、ガベージ コレクタ メカニズムによって効率的かつ自動的にクリーンアップする新しいクラスを作成することに関するものです。