美文网首页
自我总结~LruCache之图片缓存

自我总结~LruCache之图片缓存

作者: pray_daidai | 来源:发表于2018-05-29 19:55 被阅读0次

    图片的三级缓存包括内存缓存,磁盘缓存,网络缓存。

    为什么要缓存大家都知道,但如何进行缓存呢,缓存原理是什么呢?每次面试的时候都回答的不是太理想。今天又碰壁了。

    所以我想好好的组织一下语言

    内存缓存的原理是使用的LruCache算法,其中Lru是指(least recently used)即最近最少使用。当内存不足时就会对其进行回收

    用法:

    int maxMemory = (int) Runtime.getRuntime().maxMemory() /1024;//当前进程的最大内存

    int cacheMemory = maxMemory /8;//分配给内存缓存的内存,如果存储的数据大小将要超过这个内存缓存,就回收掉一些最近很少使用的对象

    LruCache的源码

    通过查看源码,知道LruCache是基于LinkedHashMap,它是一个双向链表结构,

    在LinmedHashMap创建的时候可指定顺序,一种是Lru,还有一种是插入顺序。在lruCache中用的是前一种。每次put一个entry或者get一个对象,都会把当前对象移到链表的尾端。当内存不足时,对链表的头部进行remove。

    相关文章

      网友评论

          本文标题:自我总结~LruCache之图片缓存

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