国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java 緩存池(使用Map實現)

2019-11-14 23:16:21
字體:
來源:轉載
供稿:網友
java 緩存池(使用Map實現)

之前只是聽說過緩存池,也沒有具體的接觸到,今天做項目忽然想到了用緩存池,就花了一上午的時間研究了下緩存池的原理,并實現了基本的緩存池功能。

/** * 緩存池 * @author xiaoquan * @create 2015年3月13日 上午10:32:13 * @see */public class CachePool {    PRivate static CachePool instance;//緩存池唯一實例    private Map<String,Object> cacheItems;//緩存Map        private CachePool(){        cacheItems = new HashMap<String,Object>();    }    /**     * 得到唯一實例     * @return     */    public synchronized static CachePool getInstance(){        if(instance == null){            instance = new CachePool();        }        return instance;    }    /**     * 清除所有Item緩存     */    public synchronized void clearAllItems(){        cacheItems.clear();    }    /**     * 獲取緩存實體     * @param name     * @return     */    public synchronized Object getCacheItem(String name){        if(!cacheItems.containsKey(name)){            return null;        }        CacheItem cacheItem = (CacheItem) cacheItems.get(name);        if(cacheItem.isExpired()){            return null;        }        return cacheItem.getEntity();    }    /**     * 存放緩存信息     * @param name     * @param obj     * @param expires     */    public synchronized void putCacheItem(String name,Object obj,long expires){        if(!cacheItems.containsKey(name)){            cacheItems.put(name, new CacheItem(obj, expires));        }        CacheItem cacheItem = (CacheItem) cacheItems.get(name);        cacheItem.setCreateTime(new Date());        cacheItem.setEntity(obj);        cacheItem.setExpireTime(expires);    }    public synchronized void putCacheItem(String name,Object obj){        putCacheItem(name,obj,-1);    }        /**     * 移除緩存數據     * @param name     */    public synchronized void removeCacheItem(String name){        if(!cacheItems.containsKey(name)){            return;        }        cacheItems.remove(name);    }        /**     * 獲取緩存數據的數量     * @return     */    public int getSize(){        return cacheItems.size();    }}

public class CacheItem {private Date createTime = new Date();//創建緩存的時間private long expireTime = 1;//緩存期滿的時間private Object entity;//緩存的實體public CacheItem(Object obj,long expires){this.entity = obj;this.expireTime = expires;}public boolean isExpired(){return (expireTime != -1 && new Date().getTime()-createTime.getTime() > expireTime);}        /**         * 省略getter、setter方法          */ }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新乡市| 申扎县| 怀化市| 郓城县| 资溪县| 来安县| 宁阳县| 宝坻区| 绥滨县| 修水县| 苏州市| 鄂托克前旗| 翁源县| 密云县| 井研县| 巫溪县| 仁怀市| 阿克苏市| 沈丘县| 高要市| 德兴市| 浠水县| 宁海县| 红桥区| 夏河县| 攀枝花市| 义马市| 丹寨县| 临江市| 义马市| 合山市| 泗洪县| 江都市| 西昌市| 尤溪县| 岚皋县| 富顺县| 克什克腾旗| 浙江省| 科技| 洱源县|