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

首頁(yè) > 編程 > Java > 正文

基于Java實(shí)現(xiàn)緩存Cache的深入分析

2019-11-26 16:04:25
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
原理是使用LinkedHashMap來(lái)實(shí)現(xiàn),當(dāng)緩存超過(guò)大小時(shí),將會(huì)刪除最老的一個(gè)元組。
實(shí)現(xiàn)代碼如下所示
復(fù)制代碼 代碼如下:

import java.util.LinkedHashMap;
import java.util.Map;
public class LRUCache {
 public static class CachedData {
  private Object data = null;
  private long time = 0;
  private boolean refreshing = false;
  public CachedData(Object data) {
   this.data = data;
   this.time = System.currentTimeMillis();
  }
  public Object getData() {
   return data;
  }
  public long getTime() {
   return time;
  }

  public void setTime(long time) {
   this.time = time;
  }

  public boolean getRefreshing() {
      return refreshing;
  }

  public void setRefreshing(boolean b) {
      this.refreshing = b;
  }
 }
 protected static class CacheMap extends LinkedHashMap {
  protected int maxsize = 0;
  public CacheMap(int maxsize) {
   super(maxsize * 4 / 3 + 1, 0.75f, true);
   this.maxsize = maxsize;
  }
  protected boolean removeEldestEntry(Map.Entry eldest) {
   return size() > this.maxsize;
  }
 }
 protected CacheMap map = null;
 public LRUCache(int size) {
  this.map = new CacheMap(size);
 }
 public synchronized void set(Object key, Object value) {
  map.remove(key);
  map.put(key, new CachedData(value));
 }
 public synchronized void remove(Object key) {
  map.remove(key);
 }
 public synchronized CachedData get(Object key) {
  CachedData value = (CachedData) map.get(key);
  if (value == null) {
   return null;
  }
  map.remove(key);
  map.put(key, value);

  return value;
 }

 public int usage() {
  return map.size();
 }

 public int capacity() {
  return map.maxsize;
 }

 public void clear() {
  map.clear();
 }
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚松县| 铁力市| 沐川县| 邯郸县| 云阳县| 鹤山市| 博客| 弋阳县| 阳曲县| 黄龙县| 香港| 贡山| 津南区| 静海县| 吉首市| 井研县| 抚州市| 丹东市| 社会| 富源县| 钟山县| 临汾市| 抚远县| 察哈| 贞丰县| 灯塔市| 聊城市| 龙里县| 洛川县| 富川| 中卫市| 弥渡县| 芦溪县| 乐陵市| 柘城县| 蒲城县| 苍山县| 巫溪县| 科尔| 永寿县| 都匀市|