具有弱值的哈希映射
2022-09-01 17:09:33
我正在为永久存储的对象实现缓存。这个想法是:
- 方法
getObjectFromPersistence(long id); ///Takes about 3 seconds
- 方法
getObjectFromCache(long id) //Instantly
并有一个方法:使用以下伪代码:getObject(long id)
synchronized(this){
CustomObject result= getObjectFromCache(id)
if (result==null){
result=getObjectFromPersistence(id);
addToCache(result);
}
return result;
}
但是我需要允许垃圾回收器收集自定义对象。到目前为止,我一直在使用一个来实现。问题是,随着时间的推移,哈希映射变得充满空的。HashMap<Long,WeakReference<CustomObject>
WeakReferences
我已经检查了WeakHashMap,但那里的键很弱(并且值仍然是强引用),因此使用弱引用进行长交是没有意义的。
解决此问题的最佳解决方案是什么?有没有一些“逆弱哈希图”或类似的东西?
谢谢