软引用
定义 软引用(Soft Reference)是 Java 中引用类型的一种。它是一种相对较弱的引用,在 Java 的垃圾回收机制(Garbage Collection,GC)中具有特殊的处理方式。 用途 软引用主要用于缓存场景,当内存空间足够时,垃圾回收器不会回收软引用所指向的对象;只有当内存不足时,才会回收这些对象,以释放内存空间。这使得它非常适合用来缓存那些在内存紧张时可以被牺牲掉的数据。
/**
* 当你的老板抠抠搜搜,不肯加机器还要提升优化效率时可以试用【一般不用,第三方缓存工具,redis,mongo,eacher不多的是选择吗】
*/
public class T {
private Map<String, SoftReference<Object>> cache = new HashMap<>();
private ReferenceQueue<Object> referenceQueue = new ReferenceQueue<>();
public void put(String key, Object value) {
// 清理已经被回收的软引用
cleanUp();
SoftReference<Object> softReference = new SoftReference<>(value, referenceQueue);
cache.put(key, softReference);
}
public Object get(String key) {
SoftReference<Object> softReference = cache.get(key);
if (softReference!= null) {
return softReference.get();
}
return null;
}
private void cleanUp() {
Reference<? extends Object> reference;
while ((reference = referenceQueue.poll())!= null) {
cache.values().remove(reference);
}
}
}
本文来自博客园,作者:余生请多指教ANT,转载请注明原文链接:https://www.cnblogs.com/wangbiaohistory/p/18631054

浙公网安备 33010602011771号