zoukankan      html  css  js  c++  java
  • java

    mybatis缓存:

    从数据查询数据时,会把结果放入缓存池。

    在没有对这个表进行修改操作时,调用同一个方法时,相同查询语句会直接读取缓存池中的结果。

    当缓存池满时,会把最近没有被使用的缓存中的数据覆盖掉。(LRU   least recently used);

    其中主要使用了linkedHashMap

    仿照mybatis中的原理,可以自己利用LinkedHashMap写一个LRU算法。

    import java.util.*;
    
    public class test {
    
        public static void main(String[] arg){
            testLinkedHashMap();
    
        }
    
        public static void testLinkedHashMap() {
            LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(5,0.75F ,true){ //第三个参数设为true时,在被使用时会把被使用的数据放到结尾。
                @Override
                protected boolean removeEldestEntry(Map.Entry<String, String> var){ //该方法原本是默认返回false,会在put之后被执行,重写该方法,在数据多于某个值时,返回true,删除头结点。
                    if(this.size() > 5){
                        return true;
                    }
                    return false;
                }
    
            };
            map.put("aa", "1");
            map.put("bb", "2");
            map.put("cc", "3");
            map.put("dd", "4");
            System.out.println(map);
            map.get("cc");
            System.out.println("=================使用cc==================");
            System.out.println(map);
    
            map.get("bb");
            System.out.println("=================使用bb===================");
            System.out.println(map);
    
            map.put("ee","5");
            System.out.println("=================加入ee===================");
            System.out.println(map);
    
            map.put("ff","6");
            System.out.println("=================加入ff===================");
            System.out.println(map);
        }
    
        void print(LinkedHashMap<String, String> source) {
            source.keySet().iterator().forEachRemaining(System.out::println);
        }
    }

    执行结果

    {aa=1, bb=2, cc=3, dd=4}
    =================使用cc==================
    {aa=1, bb=2, dd=4, cc=3}
    =================使用bb===================
    {aa=1, dd=4, cc=3, bb=2}
    =================加入ee===================
    {aa=1, dd=4, cc=3, bb=2, ee=5}
    =================加入ff===================
    {dd=4, cc=3, bb=2, ee=5, ff=6}

  • 相关阅读:
    Markdown基本必学语法
    Javascript检测值
    JS中的函数传参
    解决windows下node-sass报错的问题
    scroll的应用
    css中常见几种float方式以及倒计时(刷新页面不清)
    jquery中append与appendTo方法区别
    如何利用sql注入进行爆库
    Smarty静态缓存
    我的DBDA类
  • 原文地址:https://www.cnblogs.com/clamp7724/p/12690276.html
Copyright © 2011-2022 走看看