美文网首页
LruCache原理

LruCache原理

作者: enchanted1107 | 来源:发表于2020-09-04 22:42 被阅读0次

    LruCache可以翻译为最近最少使用缓存,它用强引用保存需要缓存的对象,它内部维护一个队列(实际上是LinkedHashMap内部的双链表,不支持线程安全,LruCache对它进行封装,添加了线程安全操作),当其中的一个值被访问时,它被放倒队列尾部,当缓存将满时,队列头部(也就是最近最少被访问的)被丢弃,之后可以被垃圾回收。
    LruCache比较重要的几个方法如下:
    ●public final Vget(K key)
    返回cache中key对应的值,调用这个方法后,被访问的值会移动到队列的尾部。
    ●public final V put(K key,V value)
    根据key存放value,存放的value会移动到队列的尾部
    ●protect int sizeOf(K key,V value)
    返回每个缓存对象的大小,用来判断缓存是否快要满了,这个方法必须重写。
    ●protect void entryRemoved(boolean evicted,K key,V oldValue,V newValue)
    当一个缓存对象被丢弃时调用的方法,这是个空方法,可以重写,不是必须的,第一个参数为true:当缓存对象是为了腾出空间而被清理时候。第一个参数为false:缓存的对象entry被remove移除或者被put覆盖时候。

    相关文章

      网友评论

          本文标题:LruCache原理

          本文链接:https://www.haomeiwen.com/subject/uygtektx.html