java 缓存 单例_单例模式应用:高速缓存和查找对象(转)
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
單例模式獲得工廠唯一實(shí)例,用map保存對(duì)象引用,實(shí)現(xiàn)快速查找
1.例子
package?com.d1zhan.cache;
import?java.util.HashMap;
import?java.util.Map;
public?class?CacheFactory?{
private?static?CacheFactory?instance;
private?Map?map;
private?CacheFactory(){
map?=?new?HashMap();
}
public?synchronized?static?CacheFactory?getInstance(){
if?(instance?==?null)?{
instance?=?new?CacheFactory();
}
return?instance;
}
public?Object?lookup(Class?clazz,String?id){
Object?obj?=??map.get(clazz.getName()+id);
if?(obj?==?null)?{
obj=BaseDao.load(clazz,id);//這里是獲取對(duì)象方式,例如hibernate的session.load(..)
map.put(clazz.getName()+id,?obj);
}
return?obj;
}
}
2.大家可能發(fā)現(xiàn),這樣做,cache里的對(duì)象會(huì)越來(lái)越多,有內(nèi)存溢出的風(fēng)險(xiǎn),解決的辦法是,應(yīng)用lru算法,把不常使用的對(duì)象,定期從cache清除。
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java 缓存 单例_单例模式应用:高速缓存和查找对象(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 卖了房子四年了,也已经过户4年,4年前的
- 下一篇: 合肥朋光路街道办理身份证在哪里