java实现LRU
什么是LRU
LRU就是计算机操作系统中常见的内存管理算法,中文名也叫最近最少使用页面置换算法。
也就是在缺页的情况下,寻找最近最少被使用的页面,然后将它置换出内存,把新的页面置换到内存。
实现思路
数据结构:
使用一个双向链表和一个HashMap<Integer,Node>。
关键流程
双向链表用来记录同一个级别的页面的先后访问顺序。
map用来表示所有的级别的情况。
如果页面在低级别的页面中命中,就将页面放到高级别的队列中的队头,满了就将队尾元素放到低一级别队列的队头。
如果高级别的页面中出现淘汰页面的情况,就将淘汰的页面放入低一个级别的队列中,直到到达最低级别,就直接将页面进行淘汰。