跳到主要内容

简述LruCache & DiskLruCache原理 ?

参考答案:

LruCache和DiskLruCache都是用于缓存数据的工具,但它们的工作方式和应用场景有所不同。

LruCache是一种内存中的缓存,基于LRU(Least Recently Used)算法,即最近最少使用算法。它使用一个双向链表和一个HashMap来实现。当向缓存中添加数据时,数据会被添加到链表的头部;当访问缓存中的数据时,该数据会被移动到链表的头部。如果缓存满了,那么链表尾部的数据(即最久未使用的数据)会被移除。这种缓存方式适用于缓存大小有限,且数据访问模式具有时间局部性的场景。

DiskLruCache则是一种硬盘缓存,它使用文件系统来存储数据。与LruCache不同,DiskLruCache将数据存储在硬盘上,因此可以存储更大的数据量。DiskLruCache也使用LRU算法来管理缓存,但它通过文件来实现。每个缓存项都被存储在一个单独的文件中,文件名由缓存项的key生成。当缓存满了,最久未使用的缓存项(即最早的文件)会被删除。DiskLruCache适用于需要持久化存储大量数据的场景,例如在应用启动时加载大量图片或数据。

总的来说,LruCache和DiskLruCache都是基于LRU算法的缓存工具,但它们的存储介质不同,适用于不同的场景。LruCache适用于内存缓存,而DiskLruCache适用于硬盘缓存。