java軟引用和弱引用
阿新 • • 發佈:2018-11-21
/** * 引用處理 * * @作者 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 = newSoftReference<T>(referent); } return softRef.get(); } }