java.lang.ref
クラス SoftReference
java.lang.Object
|
+--java.lang.ref.Reference
|
+--java.lang.ref.SoftReference
- public class SoftReference
- extends Reference
メモリ要求に応じてガベージコレクタの判断でクリアされるソフト参照オブジェクトです。ソフト参照は通常、メモリに敏感なキャッシュを実装するために使用されます。
ある時点で、オブジェクトがソフト到達可能であると、ガベージコレクタが判断したとします。その時点で、ガベージコレクタは、そのオブジェクトへのソフト参照すべてと、強参照のチェーンを経由してそのオブジェクトに到達できるような、ソフト到達可能なほかのオブジェクトへのソフト参照すべてを自動的にクリアすることを選択できます。同時にまたはあとで、ガベージコレクタは、参照キューに登録されているそれらの新しくクリアされたソフト参照をキューに入れます。
ソフトに到達可能なオブジェクトへのすべてのソフト参照は、Virtual Machine が OutOfMemoryError
をスローする前にクリアされていることが保証されています。そうでない場合、ソフト参照がクリアされる時点、またはさまざまなオブジェクトへの一連のソフト参照がクリアされる順序に制約はありません。ただし、Virtual Machine の実装は、最近作成されたソフト参照または最近使用されたソフト参照をクリアしないことが奨励されます。
このクラスの直接のインスタンスは、単純なキャッシュを実装するために使用できます。このクラスまたは派生したサブクラスは、より洗練されたキャッシュを実装するために、もっと大きなデータ構造でも使用できます。ソフト参照のリファレントが強到達可能であるかぎり、つまり実際に使用されているかぎり、ソフト参照はクリアされません。このため、たとえば洗練されたキャッシュは、エントリへの強いリファレントを維持することで、もっとも新しく使用されたエントリが破棄されることを防ぎ、ほかのエントリはガベージコレクタの判断で破棄されるようにできます。
- 導入されたバージョン:
- JDK1.2
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
SoftReference
public SoftReference(Object referent)
- 指定されたオブジェクトを参照する新しいソフト参照を作成します。新しい参照は、どのキューにも登録されていません。
SoftReference
public SoftReference(Object referent,
ReferenceQueue q)
- 指定されたオブジェクトを参照し、指定されたキューに登録されている新しいソフト参照を作成します。
- 例外:
- NullPointerException -
queue
引数が null
の場合
get
public Object get()
- 参照オブジェクトのリファレントを返します。プログラムまたはガベージコレクタによって、この参照オブジェクトがすでにクリアされている場合、このメソッドは
null
を返します。
- 戻り値:
- この参照が表すオブジェクト。この参照オブジェクトがクリアされている場合は
null
- オーバーライド:
- クラス Reference 内の get
バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.