1. 程式人生 > >java軟引用和弱引用

java軟引用和弱引用

/**
 * 引用處理
 * 
 * @作者 light-zhang
 * @時間 2018年11月9日
 * @product mall-utils
 * @package cc.zeelan.common.retus
 * @file CatReference.java
 *
 */
public abstract class CatReference {
    /**
     * 弱引用處理
     * 當jvm觸發gc的時候,回收掉軟引用裡面的物件,一般用來處理返回的一些臨時Stringbuffer等其他的臨時引數
     * @param classOfType
     * @return
*/ protected <T> T weakOf(T classOfType) { ReferenceQueue<T> queue = new ReferenceQueue<T>(); WeakReference<T> weakRef = new WeakReference<T>(classOfType, queue); if (null == weakRef.get()) { weakRef = new WeakReference<T>(classOfType); }
return weakRef.get(); } /** * 軟引用處理 * 當jvm記憶體不足的時候,回收掉軟引用裡面的物件資訊,一般用作物件快取 * @return */ protected <T> T softOf(T referent) { SoftReference<T> softRef = new SoftReference<T>(referent); if (null == softRef.get()) { softRef = new
SoftReference<T>(referent); } return softRef.get(); } }