Skip to content

cache-eviction-demo ​

LRU / LFU 缓存淘汰可运行对照实验。

1. 实验目标 ​

理解 LRU 与淘汰策略:

入口类内容
LruLinkedHashMapDemoJDK LinkedHashMap:accessOrder + removeEldestEntry
SimpleLruCache手写 LRU:HashMap + 双向链表,moveToTail
SimpleLfuCache手写 LFU:频率桶 + 同频 LRU tie-break

2. 运行方式 ​

bash
cd labs/foundations/cache-eviction-demo
javac -d out src/*.java

java -cp out LruLinkedHashMapDemo
java -cp out SimpleLruCache
java -cp out SimpleLfuCache

3. 源码 ​

文件说明
LruLinkedHashMapDemo.javaLinkedHashMap 逐步演示(含 get D×5 + put F)
SimpleLruCache.java手写 LRU,head 先淘汰 / tail 最近使用
SimpleLfuCache.java手写 LFU,与 LRU 对比频率语义

4. 预期要点 ​

LRU:踢最久未访问;get D 多次不改变已在队尾的顺序;满员踢 head.next。

LFU:踢频率最低;get A×3 后 A 更难被淘汰;满员踢 freq 最小的 C 而非 A。

站点构建时间:2026/8/24 23:43:17