您的位置:首页 > 编程语言 > Java开发

Map在Java中构造缓存对象的原理及实现

2013-10-27 21:23 489 查看
Map在Java中构造缓存对象的原理及实现
在实际的项目中,当我们对于某些数据需要经常去访问的时候,我们一般的做法都是将其数据放置到一个缓存(Cache)对象中去,可以达到使用空间节省时间的效果。同时,缓存的使用,也可以减少我们对硬盘或者数据库的频繁访问。达到了比较理想的效果。
这就是为什么我们在java中需要对某个对象设置缓存的原因(也即原理)。在Java中最常见的一种实现缓存的方式就是使用Map,而缓存的实现则主要分为三大步骤:
第一:先到缓存里面查找是否有我们需要的对象,若是存在,则直接返回。
第二:若是缓存里面没有该对象,则将其数据添加到缓存中去。以备下次使用。
第三:如果找到了相应的数据,或者是创建了相应的数据,那就直接使用这个数据。
然而,java中Map对象的key设置为String类型,也是为了查找的方便。

/**

* Java中缓存的基本实现示例

*/

public class JavaCache {

/**

* 缓存数据的容器,定义成Map是方便访问,直接根据Key就可以获取Value了

* key选用String是为了简单,方便演示

*/

private Map<String,Object> map = new HashMap<String,Object>();

private ObjectDao objectDao = null;//一般这个*Dao对象需要我们注入

/**

* 从缓存中获取值

* @param key 设置时候的key值

* @return key对应的Value值

*/

public Object getValue(String key){

//先从缓存里面取值

Object obj = map.get(key);

//判断缓存里面是否有值

if(obj == null){

//如果没有,那么就去获取相应的数据,比如读取数据库或者文件

obj =
objectDao.getObjectByKey(key);//这个方法是*Dao实现具体数据库查询的时候调用的方法

//把获取的值设置回到缓存里面

map.put(key, obj);

}

//如果有值了,就直接返回使用

return obj;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: