LruCache 底层是 LinkedHashMap
任意时刻,当一个值被访问时,它就会被移动到队列的开始位置,所以这也是为什么要用 LinkedHashMap(数据结构+算法) 的原因,因为要频繁的做移动操作,为了提高性能,所以要用 LinkedHashMap。这个大小是可以设定的(自定义sizeOf())。当 cache 满了时,此时再向 cache 里面添加一个值,那么,在队列最后的值就会从队列里面移除,这个值就有可能被 GC 回收掉。(放入这个map的item应该会被强引用,要回收这个对象的时候是让这个key为空,这样就让有向图找不到对应的value,最终被GC。)
我们应该能通过某个方法来清空缓存,这个缓存在app被退出后就自动清理,不会常驻内存。