欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2013年06月04日 11:58:32   作者:  
本篇文章是對(duì)Java實(shí)現(xiàn)緩存Cache進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
原理是使用LinkedHashMap來(lái)實(shí)現(xiàn),當(dāng)緩存超過大小時(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();
 }
}

相關(guān)文章

  • Java實(shí)現(xiàn)模擬機(jī)器人對(duì)話的示例代碼

    Java實(shí)現(xiàn)模擬機(jī)器人對(duì)話的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)模擬機(jī)器人對(duì)話的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • JavaSE的三大接口:Comparator,Comparable和Cloneable詳解

    JavaSE的三大接口:Comparator,Comparable和Cloneable詳解

    這篇文章主要介紹了詳解JavaSE中Comparator,Comparable和Cloneable接口的區(qū)別的相關(guān)資料,希望通過本文大家能徹底掌握這部分內(nèi)容,需要的朋友可以參考下
    2021-10-10
  • Java多線程之readwritelock讀寫分離的實(shí)現(xiàn)代碼

    Java多線程之readwritelock讀寫分離的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java多線程之readwritelock讀寫分離的相關(guān)內(nèi)容,文中涉及具體實(shí)例代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • Java Swing JToggleButton開關(guān)按鈕的實(shí)現(xiàn)

    Java Swing JToggleButton開關(guān)按鈕的實(shí)現(xiàn)

    這篇文章主要介紹了Java Swing JToggleButton開關(guān)按鈕的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java @Async注解導(dǎo)致spring啟動(dòng)失敗解決方案詳解

    Java @Async注解導(dǎo)致spring啟動(dòng)失敗解決方案詳解

    這篇文章主要介紹了Java @Async注解導(dǎo)致spring啟動(dòng)失敗解決方案詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 一篇帶你解析入門LongAdder源碼

    一篇帶你解析入門LongAdder源碼

    LongAdder類是JDK1.8新增的一個(gè)原子性操作類。AtomicLong通過CAS算法提供了非阻塞的原子性操作,因?yàn)榉浅8悴l(fā)的請(qǐng)求下AtomicLong的性能是不能讓人接受的
    2021-06-06
  • 聊一聊SpringBoot服務(wù)監(jiān)控機(jī)制

    聊一聊SpringBoot服務(wù)監(jiān)控機(jī)制

    這篇文章主要介紹了聊一聊SpringBoot服務(wù)監(jiān)控機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • ElasticSearch學(xué)習(xí)之文檔API相關(guān)操作

    ElasticSearch學(xué)習(xí)之文檔API相關(guān)操作

    這篇文章主要為大家介紹了ElasticSearch學(xué)習(xí)之文檔API相關(guān)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Springboot使用Logback實(shí)現(xiàn)日志配置與異常記錄

    Springboot使用Logback實(shí)現(xiàn)日志配置與異常記錄

    默認(rèn)情況下,SpringBoot內(nèi)部使用logback作為系統(tǒng)日志實(shí)現(xiàn)的框架,將日志輸出到控制臺(tái),不會(huì)寫到日志文件。本篇文章主要講解下如何自定義logabck.xml以及對(duì)logback文件中配置做一個(gè)詳解,需要的可以參考一下
    2022-11-11
  • 關(guān)于SpringGateway調(diào)用服務(wù) 接受不到參數(shù)問題

    關(guān)于SpringGateway調(diào)用服務(wù) 接受不到參數(shù)問題

    這篇文章主要介紹了關(guān)于SpringGateway調(diào)用服務(wù)接受不到參數(shù)問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評(píng)論