|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
参照先:
説明
クラスの概要 | |
---|---|
PhantomReference<T> | ファントム参照オブジェクトです。 |
Reference<T> | 参照オブジェクトための抽象基底クラスです。 |
ReferenceQueue<T> | 参照キューです。 |
SoftReference<T> | メモリ要求に応じてガベージコレクタの判断でクリアされるソフト参照オブジェクトです。 |
WeakReference<T> | 弱参照オブジェクトです。 |
ガベージコレクタとの制限付きの対話をサポートする、参照オブジェクトクラスを提供します。プログラムは、参照オブジェクトを使って、参照オブジェクト以外のオブジェクトをコレクタが再生できるように、参照オブジェクト以外のオブジェクトへの参照を維持できます。また、指定されたオブジェクトの到達可能性が変更されたとコレクタが判断したあとに、プログラムが通知を受けるようにすることもできます。
各型の参照オブジェクトは、抽象基底
クラスのサブクラスによって実装されます。それらのサブクラスのインスタンスは、「リファレント」と呼ばれる、特定のオブジェクトへの参照をカプセル化します。各参照オブジェクトは、参照を取得およびクリアするためのメソッドを提供します。クリア処理は提供されますが、参照オブジェクトは不変であるため、Reference
set
オペレーションは提供されません。プログラムは、これらのサブクラスをさらにサブクラス化して目的にあったフィールドおよびメソッドを追加することも、これらのサブクラスを変更しないでそのまま使うこともできます。
ReferenceQueue
クラスによって実装されます。
登録された参照オブジェクトとそのキューの関係は一方向です。つまり、キューは登録されている参照の履歴を記録しません。登録されている参照自体が到達不可能になると、それは絶対にキューに入れられません。参照オブジェクトを使用してプログラムがリファレントを必要とするかぎりオブジェクトを到達可能にしておくことはプログラムの責任です。
プログラムによっては、1 つ以上のキューからの参照オブジェクトを削除したり、それらを処理するためにスレッドの割り当てを選択する場合がありますが、これは必ずしも必要ありません。多くの場合にうまく機能する方法は、かなり頻繁に行われるほかのアクションを実行する間に参照キューを検査することです。たとえば、弱キーを実装するために弱参照を使用するハッシュテーブルの場合は、テーブルがアクセスされるたびに自分の参照キューに対してポーリングします。
クラスはこの方法で機能します。WeakHashMap
メソッドは単に内部データ構造をチェックするだけなので、このチェックがハッシュテーブルアクセスメソッドに与えるオーバーヘッドはごくわずかです。
ReferenceQueue.poll
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。