美文网首页
LruCache原理

LruCache原理

作者: 钟离四郎 | 来源:发表于2018-12-08 17:02 被阅读0次

创建LruCache对象,重写其中的sizeOf方法:


然后看看LruCache内部长啥样子???


看到A处,这里有个LinkedHashMap,这个是专门来存要缓存的对象,这个数据结构有个特点即链表+HashMap,HashMap是无序的,而LinkedHashMap是有序的,插入顺序与输出顺序相同,它还一个特点就是可以根据访问顺序排序,这个特点很重要,后期缓存满的时候要移除“最近最少使用”的缓存对象就很方便了,如下:

如果你对LinkedHashMap不了解可以看下这片文章:LinkedHashMap 的实现原理
接下来目光移到B处,看看LruCache的put方法:

看到标记D处,trimToSize方法:

看完put,再来看看get方法:


接上图看下,mapValue为null又做些什么呢?如下:


总结

LruCache能够按照最近最少使用的思想来缓存对象,在于其内部使用了LinkedHashMap这种数据结构来缓存对象,这种数据结构有个主要特点:插入顺序与输出顺序相同,同时还能够根据访问顺序排序,理解这一点,再去看put、get源码就很简单了,总的来说LruCache的源码也是很简单的。

相关文章

  • Android 高级面试-3:Java、同步和并发相关

    1、Java 相关 1.1 缓存相关 LruCache 的原理 DiskLruCache 的原理 LruCache...

  • (1)LruCache原理分析

    浅析LruCache原理 Android用LruCache(Least recently use Cache 意...

  • Android缓存原理

    本文主要内容 LruCache使用 LruCache原理 DiskLruCache使用 DiskLruCache原...

  • 面试题

    LruCache原理 LruCache 即最近最少使用内存(Least recently usage cache)...

  • Java基础_LruCache工作原理

    本文主要从如下节点讲解 LRU算法简介 LruCache的简介 LruCache的代码实操 LruCache的原理...

  • 缓存分析

    LruCache与DiskLruCache 文章目录 一 Lru算法 二 LruCache原理分析2.1 写入缓存...

  • Android常问的面试题(二)

    (一)图片 1、图片库对比 2、LRUCache原理 LruCache是个泛型类,主要原理是:把最近使用的对象用强...

  • LRUCache原理

    讲到LruCache不得不提一下LinkedHashMap,因为LruCache中Lru算法的实现就是通过L...

  • LRUCache原理

    Least Recently Used => LRU:最近最少使用算法 为什么使用LRUcache?Android...

  • LRUCache原理

    roundUpToPowerOfTwo(int i) 获取大于等于 某个整数 并且是 2 的幂数的整数 publi...

网友评论

      本文标题:LruCache原理

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