1、FIFO(First In First Out): 先入先出,和队列一样
2、LRU(Least Recently Used): 最近读取放最前,最早读放后,新的数据进来,后面的淘汰。
3、LFU(Least Frequently Used): 最不常使用,对存储的数据都有计数引用,引用多排前面,少排后。新进来,后面删,把新进数据排在最后面,引用次数为1
下面几种实现当中都没有实现线程安全。
一、FIFO实现:
LinkedHashMap存储数据排序,先进先出,本身返回false,子类中重写,可自定义去实现。
二、LRU
int initialCapacity(容量),
float loadFactor(加载因子)
boolean accessOrder是否启用LRU(默认不启动)
优化:合理构造LinkedHashMap,控制临界点扩容操作。设置ture
三、LFU
本例不考虑命中时间,只考虑命中次数,LFU实现丑,可换思路改进,如TreeMap实现排序