LRU
LRU(Least Recently Used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因此我们需要制定一种策略对加入到内存中的文件进项选择。
常见的页面置换算法有如下几种:
LRU 最近最久未使用
FIFO 先进先出置换算法 类似队列
OPT 最佳置换算法 (理想中存在的)
NRU Clock置换算法
LFU 最少使用置换算法
PBA 页面缓冲算法
LRU原理
LRU的设计原理就是,当数据在最近一段时间经常被访问,那么它在以后也会经常被访问。这就意味着,如果经常访问的数据,我们需要然其能够快速命中,而不常访问的数据,我们在容量超出限制内,要将其淘汰。
import com.google.common.collect.ImmutableList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class LRUSample<K, V> extends LinkedHashMap<K, V> {
public LRUSample(){
super(16, 0.75f, true);
}
//LRU的空间大小
final int MAX_CACHE = 3;
protected boolean removeEldestEntry(Map.Entry&