说说 LruCache 底层原理
原理 底层
2023-09-27 14:27:33 时间
LruCache 使用一个 LinkedHashMap 简单的实现内存的缓存,没有软引用,都是强引用。如果添加的数据大于设置的最大值,就删除最先缓存的数据来调整内存。
maxSize 是通过构造方法初始化的值,他表示这个缓存能缓存的最大值是多少。
size 在添加和移除缓存都被更新值, 他通过 safeSizeOf 这个方法更新值。 safeSizeOf 默认返回 1,但一般我们会根据 maxSize 重写这个方法,比如认为 maxSize 代表是 KB 的话,那么就以 KB 为单位返回该项所占的内存大小。
除异常外首先会判断 size 是否超过 maxSize,如果超过了就取出最先插入的缓存,如果不为空就删掉,并把 size 减去该项所占的大小。这个操作将一直循环下去,直到 size 比 maxSize 小或者缓存为空。
相关文章
- SSH原理与运用(一):远程登录
- 【MySQL从入门到精通】【高级篇】(一)字符集的修改与底层原理
- Spring注解缓存设计原理及实战
- 从原理带你掌握Spring MVC拦截处理器知识
- [ ceph ] 基本概念、原理、架构介绍
- Android硬件加速原理与实现简介
- java 线程池底层原理详解与源码分析(补充部分---ScheduledThreadPoolExecutor类分析)
- 序列化和反序列化的底层实现原理是什么?
- 【编译原理笔记】常见处理器寄存器
- 牛逼哄哄的数据库连接池,底层原理是个啥?
- 面试官:ThreadLocal了解吗?用过吗?原理是什么?底层数据如何存储的?
- c函数调用过程原理及函数栈帧分析
- 【ChatGPT】ChatGPT 训练过程原理全解析
- 图解内存的工作原理
- [五]类加载机制双亲委派机制 底层代码实现原理 源码分析 java类加载双亲委派机制是如何实现的
- Dart空安全的底层原理与适配
- Arrays.sort底层原理
- 冷饭新炒:理解Snowflake算法的实现原理
- malloc,calloc,realloc函数用法,原理及不同解析
- 最短路径A*算法原理及java代码实现(看不懂是我的失败)
- 小程序底层原理
- 嵌入式操作系统内核原理和开发(多线程轮转)
- 寻遍天下名师终于搞懂了Fiddler的工作原理
- Spring注解Autowired的底层实现原理详解
- WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]
- 人工智能语聊的相关原理学习(一):Huffman编码
- 【Vue 开发实战】生态篇 # 20:选择何种模式的路由及底层原理
- 大数据Maxwell(一):Maxwell介绍和工作原理
- 云原生(十一) | Kubernetes篇之Kubernetes原理与安装
- 【Java基础系列】Stream底层原理解析