JavaTM 2 Platform
Standard Ed. 6

java.lang.ref
類別 SoftReference<T>

java.lang.Object
  繼承者 java.lang.ref.Reference<T>
      繼承者 java.lang.ref.SoftReference<T>

public class SoftReference<T>
extends Reference<T>

軟參考物件,在回應記憶體需要時,由垃圾回收器決定是否清除此物件。軟參考物件最常用於實作記憶體敏感的快取記憶體。

假定垃圾回收器確定在某一時間點某個物件是軟可到達物件。這時,它可以選擇自動清除針對該物件的所有軟參考,以及通過強參考鏈,從其可以到達該物件的針對任何其他軟可到達物件的所有軟參考。在同一時間或晚些時候,它會將那些已經向參考佇列註冊的新清除的軟參考加入佇列。

軟可到達物件的所有軟參考都要保證在虛擬機器拋出 OutOfMemoryError 之前已經被清除。否則,清除軟參考的時間或者清除不同物件的一組此類別參考的順序將不受任何約束。然而,虛擬機器實作不鼓勵清除最近存取或使用過的軟參考。

此類別的直接實例可用於實作簡單快取記憶體;該類別或其派生的子類別還可用於更大型的資料結構,以實作更複雜的快取記憶體。只要軟參考的指示物件是強可到達物件,即正在實際使用的物件,就不會清除軟參考。例如,通過保持最近使用的項的強指示物件,並由垃圾回收器決定是否放棄剩餘的項,複雜的快取記憶體可以防止放棄最近使用的項。

從以下版本開始:
1.2

建構子摘要
SoftReference(T referent)
          創建參考給定物件的新的軟參考。
SoftReference(T referent, ReferenceQueue<? super T> q)
          創建一個參考給定物件的新的軟參考,並向給定佇列註冊該參考。
 
方法摘要
 T get()
          返回此參考物件的指示物件。
 
從類別 java.lang.ref.Reference 繼承的方法
clear, enqueue, isEnqueued
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

SoftReference

public SoftReference(T referent)
創建參考給定物件的新的軟參考。新的參考沒有向任何佇列註冊。

參數:
referent - 新的軟參考將參考的物件

SoftReference

public SoftReference(T referent,
                     ReferenceQueue<? super T> q)
創建一個參考給定物件的新的軟參考,並向給定佇列註冊該參考。

參數:
referent - 新的軟參考將參考的物件
q - 該參考向其註冊的佇列,如果不需要註冊,則為 null
方法詳細資訊

get

public T get()
返回此參考物件的指示物件。如果此參考物件已經由程序或垃圾回收器清除,則此方法將返回 null

覆寫:
類別 Reference<T> 中的 get
返回:
此參考所參考的物件;如果此參考物件已經清除,則返回 null

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only