返回介绍

6. 总结

发布于 2024-12-23 21:09:30 字数 647 浏览 0 评论 0 收藏 0

LruCache 重要的几点:

  • 1. LruCache 是通过 LinkedHashMap 构造方法的第三个参数的 accessOrder=true 实现了 LinkedHashMap 的数据排序 基于访问顺序 (最近访问的数据会在链表尾部),在容量溢出的时候,将链表头部的数据移除。从而,实现了 LRU 数据缓存机制。
  • **2.**LruCache 在内部的 get、put、remove 包括 trimToSize 都是安全的(因为都上锁了)。
  • **3.**LruCache 自身并没有释放内存,将 LinkedHashMap 的数据移除了,如果数据还在别的地方被引用了,还是有泄漏问题,还需要手动释放内存。
  • **4.**覆写 entryRemoved 方法能知道 LruCache 数据移除是是否发生了冲突,也可以去手动释放资源。
  • 5.maxSizesizeOf(K key, V value) 方法的覆写息息相关,必须相同单位。( 比如 maxSize 是 7MB,自定义的 sizeOf 计算每个数据大小的时候必须能算出与 MB 之间有联系的单位 )

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文