四种引用及WeakHashMap介绍
所属分类 java
浏览量 1524
强引用
软引用
弱引用
虚引用
软引用 SoftReference
Object obj = new Object();
ReferenceQueue queue = new ReferenceQueue();
SoftReference reference = new SoftReference(obj, queue);
obj = null;
内存不足时,软引用对象被回收,reference.get()为nul,
软引用对象 添加进ReferenceQueue 队列中
SoftReference ref = null;
while ((ref = (SoftReference) queue.poll()) != null) {
//清除软引用对象
}
弱引用(WeakReference)
GC时就被回收
WeakReference reference = new WeakReference(obj, queue);
虚引用(PhantomReference)
PhantomReference reference = new PhantomReference(obj, queue);
WeakHashMap 要点
ReferenceQueue和WeakReference
当key值没有强引用的时候,从WeakHashMap里移除。
private static class Entry extends WeakReference
expungStaleEntries()方法在resize、put、get、forEach方法里调用。
上一篇
下一篇
基于数据库的分布式锁设计
prometheus集成grafana实现可视化
g1 GC 要点
软引用弱引用及引用队列实战例子
grafana基本概念
跨域资源共享CORS介绍