java.lang.refガベージコレクタとの制限付きの対話をサポートする、参照オブジェクトクラスを提供します。ファントム参照オブジェクトです。参照オブジェクトための抽象基底クラスです。メモリー要求に応じてガベージコレクタの判断でクリアされるソフト参照オブジェクトです。弱参照オブジェクトです。説明ガベージコレクタとの制限付きの対話をサポートする、参照オブジェクトクラスを提供します。ほかのあるオブジェクトがガベージコレクタによってすでに再生されていても、そのオブジェクトを指す参照を維持したい場合に、プログラムは参照オブジェクトを使うことができます。プログラムは、あるオブジェクトへの到達可能性が変わったとガベージコレクタが判断したあとで、通知を受けるようにすることができます。「参照オブジェクト」は、その参照自体をほかのオブジェクトと同じように検査および操作できるようにするために、ほかのオブジェクトへの参照をカプセル化します。種類の参照オブジェクトが提供されます。各型は、次に定義されているように、対応する到達可能性のレベルがそれぞれ異なります。ソフト参照は、メモリーセンシティブなキャッシュを実装するために提供されます。弱参照は、キーまたは値が再利用されることを阻止しない正規化マッピングを実装するために提供されます。ファイナライズ機構よりも柔軟な方法で、プリモルテムクリーンアップアクションをスケジューリングするために提供されます。クラスのサブクラスによって実装されます。それらのサブクラスのインスタンスは、「リファレント」と呼ばれる、特定のオブジェクトへの参照をカプセル化します。各参照オブジェクトは、参照を取得およびクリアするためのメソッドを提供します。オペレーションは提供されません。プログラムは、これらのサブクラスをさらにサブクラス化して目的にあったフィールドおよびメソッドを追加することも、これらのサブクラスを変更しないでそのまま使うこともできます。通知プログラムは、適切な参照オブジェクトをそれが作成された時点で「参照キュー」に「登録」することによって、オブジェクトの到達可能性が変更された通知を受け取るように要求できます。リファレントの到達可能性がその参照型に対応する値に変更されたと判断したあとに、ガベージコレクタはその参照を関連したキューに追加します。この時点で、参照は「キューに入っている」とみなされます。プログラムは、参照が利用可能になるまでポーリングまたはブロックすることによって、キューから参照を削除できます。クラスによって実装されます。登録された参照オブジェクトとそのキューの関係は一方向です。キューは登録されている参照の履歴を記録しません。登録されている参照自体が到達不可能になると、それは絶対にキューに入れられません。参照オブジェクトを使用してプログラムがリファレントを必要とするかぎりオブジェクトを到達可能にしておくことはプログラムの責任です。以上のキューからの参照オブジェクトの削除およびそれらの処理専用にするように選択されますが、これは、まったく必要ありません。多くの場合にうまく機能する方法は、かなり頻繁に行われるほかのアクションを実行する間に参照キューを検査することです。弱キーを実装するために弱参照を使用するハッシュテーブルの場合は、テーブルがアクセスされるたびに自分の参照キューに対してポーリングします。クラスはこの方法で機能します。メソッドは単に内部データ構造をチェックするだけなので、このチェックがハッシュテーブルアクセスメソッドに与えるオーバーヘッドはごくわずかです。自動的にクリアされる参照ソフト参照および弱参照は、それらが登録されているキューに追加される前にコレクタによって自動的にクリアされます。(ファントム参照は必要)。最強から最弱までのレベルがあり、これはオブジェクトのライフサイクルを反映します。それらは、機能的に次のように定義されます。「強到達可能な」オブジェクトとは、参照オブジェクトをトラバースすることなく、あるスレッドによって到達できるオブジェクト。新しく作成されたオブジェクトは、それを作成したスレッドにより強到達可能ソフト可到達オブジェクトとは、強可到達ではないが、ソフト参照をトラバースすることで到達できるオブジェクト「弱到達可能な」オブジェクトとは、強到達可能でもソフト到達可能でもないが、弱参照をトラバースすることで到達できるオブジェクト。開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。