国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 金寨县| 普安县| 南充市| 井研县| 德昌县| 鄂伦春自治旗| 库伦旗| 泰安市| 乐亭县| 徐州市| 勐海县| 双鸭山市| 义马市| 北川| 双城市| 余干县| 孟津县| 扬中市| 定州市| 西安市| 青神县| 扬中市| 永靖县| 诸暨市| 且末县| 桂东县| 原平市| 云安县| 太原市| 夏津县| 河池市| 洛浦县| 农安县| 余江县| 仁化县| 桂东县| 湖州市| 泽库县| 美姑县| 龙井市| 普格县|