LruCache
LruCache
accessOrder=false: 插入顺序排序
accessOrder=true: 访问顺序排序LruCache 源码分析
📁 核心数据结构
public class LruCache<K, V> {
// 核心数据结构:LinkedHashMap
private final LinkedHashMap<K, V> map;
// 当前缓存大小(通常指条目数,但可自定义计算方式)
private int size;
private int maxSize; // 缓存最大容量
// 统计信息
private int putCount; // put操作次数
private int createCount; // create调用次数
private int evictionCount; // 淘汰条目次数
private int hitCount; // 缓存命中次数
private int missCount; // 缓存未命中次数
}🔧 关键源码分析
1. 构造方法
2. put() 方法 - 添加缓存
3. get() 方法 - 获取缓存
4. trimToSize() 方法 - 核心淘汰逻辑
5. remove() 方法 - 移除缓存
📊 自定义大小计算
🔄 生命周期回调
🎯 线程安全性
Last updated