LRU是什么?
LRU 是 Least Recently Used 最近最少使用。LRUCache是最近最少使用缓存机制,即会优先淘汰近期最少使用的缓存对象。
LRUCache的实现原理。
LRUCache内部使用了LinkedHashMap来实现的。如果对LinkedHashMap不熟悉可以看这篇文章
LinkedHashMap解析。
通过LinkedHashMap accessOrder 实现最近最少使用的实现。
LinkedHashmap 构造方法有一个
public LinkedHashMap(int initialCapacity,float loadFactor,boolean accessOrder)三个参数分别是initialCapacity初始容量、loadFactor负载系数、accessOrder访问顺序。如果为trueLinked 为访问顺序,false为插入顺序。LRUCache使用了这个构造方法,并且accessOrder为true。 每次会把访问的节点放到队尾。
LRUCache的具体实现
通过重写 removeEldestEntry方法和通过缓存大小计算初始容量来实现
1 | public LRUCache(int cacheSize) { |
LRUCache总结
LRUCache 通过LinkedHashMap的accessOrder(访问顺序) 来实现LRU缓存机制。


