浅谈JAVA数据缓存
来源:互联网 发布:朱时茂 知乎 编辑:程序博客网 时间:2024/06/03 18:19
一般是采用HashMap来作为缓存的存储结构,但Java没有全局变量的概念,怎么保证缓存中的数据不被垃圾回收器收集,而造成数据的丢失呢?
请问一般的缓存是怎样保证数据的独立性(即脱离垃圾回收器)的?
做一个判断,HashMap取不到值就到数据库里再读数据
系统第一次起来,或是第一次取数据后将数据
保存在一个static的Map里即可,凡是缓存的东西
总是经常用到的,所以一般是保持强引用,GC应该
会清理
(1)jive里面,是使用单态模式维护一个工厂实例,做为程序的入口,就是无论有多少个在线用户,都只要从该入口进入.在这个工厂实例中,有一个缓存管理类(DatabaseCacheManager)变量,这个类有几个公有变量,如DbUserCache(就是缓存访问过的用户)等.当要获取一个user的用户信息时,它就会先在DbUserCache中查找,如果找不到,那么就从数据库中读取,再放入缓存中.
ckwvip51@hotmail.com(联系我)
singleton模式:
public class DataCache {
protected static final HashMap map = new HashMap(); // Cache table
private static final Object lock = new Object();
private DataCache() {} // 防止在外部实例化
public static Object getData(Object key) {
Object v = map.get(key);
if (v == null) {
synchronized(lock) {
v = map.get(key); // Check again to avoid re-load
if (v == null) loadDataSource(key);
v = map.get(key); // retrieves data.
}
}
return v;
}
/*
*Load data from data source.
*/
protected static synchronized void loadDataSource(Object key) {
Object value = new Object(); // Load value from data source
map.put(key, value);
}
}
- 浅谈JAVA数据缓存
- java缓存浅谈
- 浅谈java缓存
- asp.net数据缓存浅谈
- C#浅谈数据缓存管理
- Java 处理缓存数据
- Java定时缓存数据
- 浅谈Java中间缓存变量机制
- 黑马程序员------Java缓存—浅谈Memcached
- 浅谈缓存
- 浅谈缓存
- 浅谈java中final数据
- java/android http数据缓存
- java中redis的缓存技术的浅谈
- Android 缓存浅谈(三级缓存)
- JAVA虚拟机运行时数据区浅谈
- 浅谈Java运行时数据区
- 使用 Java 缓存系统缓存频繁查看的数据
- 有1000个一模一样的瓶子,其中有999瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有10只小白鼠和一星期的时间,如何检验出那个瓶子里有毒药?
- 同步android 4.3源码时提示UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0:的解决方法
- hibernate中通过查询语句返回实体对象
- Jquery小点滴 - HTML FORM提交
- SQL中EXISTS的用法
- 浅谈JAVA数据缓存
- javascript中的submit与onsubmit事件解析
- 收集了一些注册验证JS表单时
- 网页中的复制、另存为、运行等JS代码的实现
- javascript怎么转换外部链接样式?
- google drive for PC ?
- 最长回文字符串
- 初学者学Java设计模式(一)------单例设计模式
- 最新的android sdk自带eclipse新建android项目是报错