/** * 引用处理 * * @作者 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(); } }