美文网首页
1110-LruCache详解一

1110-LruCache详解一

作者: 方衍 | 来源:发表于2016-11-10 08:57 被阅读25次

    </br>

    什么是LruCache

    </br>
    LruCache,Least Recently Used,“最近最少使用缓存”,是一种基于Lru算法实现的缓存机制。

    它自Android3.1开始出现,通过support-v4兼容包可以兼容早期的Android版本。因此,如果需要兼容3.1以前的版本,建议使用v4兼容包中的LruCache,而不要直接使用Android3.1提供的LruCache。

    </br>

    LruCache是怎样工作的

    </br>
    Lru算法的原理:如果当前数据的量大于设定的最大值,则把最近最少使用的数据移除掉。这样就只保留最频繁使用的数据。

    LruCache是一个泛型类,它内部采用一个LinkedHashMap以强引用的方法存储外界的缓存对象,其提供了get和put方法来完成缓存的获取和添加操作。当缓存满时,LruCache会移除较早使用的缓存对象,然后再添加新的缓存对象。

    使用LinkedHashMap有两大好处:

    一是它本身已经实现了按照访问顺序的存储。也就是说,最近读取的会放在最前面,最最不常读取的会放在最后(当然,它也可以实现按照插入顺序存储)。

    第二,LinkedHashMap 本身有一个方法用于判断是否需要移除最不常读取的数,但是,原始方法默认不需要移除(这时,LinkedHashMap 相当于一个linkedlist),所以,我们需要 override 这样一个方法,使得当缓存里存放的数据个数超过规定个数后,就把最不常用的移除掉。

    </br>

    相关文章

      网友评论

          本文标题:1110-LruCache详解一

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