- java.lang.Object
-
- java.lang.ref.Reference<T>
-
- java.lang.ref.PhantomReference<T>
-
public class PhantomReference<T> extends Reference<T>
ファントム参照オブジェクトです。ファントム参照オブジェクトがキューに入れられるのは、キューに入れておかないとそれらのリファレントが再生される可能性があるとコレクタが判断したときです。 ファントム参照は、多くの場合、事後クリーンアップ・アクションのスケジュールに使用されます。ガベージ・コレクタが、オブジェクトがファントム到達可能である特定の時点で判断したとします。 その時点で、そのオブジェクトへのすべてのファントム参照と、そのオブジェクトが到達可能な他のファントム到達可能オブジェクトへのすべてのファントム参照が原子的にクリアされます。 同時に、または後で、参照キューに登録されている新しくクリアされたファントム参照をエンキューします。
再生可能なオブジェクトをそのままにしておくために、ファントム参照のリファレントを取り出すことはできません。ファントム参照の
getメソッドは、常にnullを返します。- 導入されたバージョン:
- 1.2
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 PhantomReference(T referent, ReferenceQueue<? super T> q)指定されたオブジェクトを参照し、指定されたキューに登録されている新しいファントム参照を作成します。
-
-
-
コンストラクタの詳細
-
PhantomReference
public PhantomReference(T referent, ReferenceQueue<? super T> q)
指定されたオブジェクトを参照し、指定されたキューに登録されている新しいファントム参照を作成します。nullキューを使用してファントム参照を作成することは可能ですが、このような参照はまったく役に立ちません。そのgetメソッドは常にnullを返し、キューがないためエンキューされません。- パラメータ:
referent- 新しいファントム参照が参照するオブジェクトq- 参照が登録されるキュー。登録が必要ない場合はnull
-
-