当前位置: 首页 > article >正文

Java:缓存:LinkedHashMap实现Lru

文章目录

    • Lru
    • 源码分析
      • ​​​​​​​​​​​​​​LinkedHashMap维护一个LinkedHashMapEntry<K,V>的双向链表
      • 对LinkedHashMap的增删查操作,也会对链表进行相同的操作并改变链表的链接顺序
      • 小结
    • 使用方法​​​​​​​​​​​​​​
    • 应用
    • 总结

Lru

Least Recently Used,最近最少使用,包括两个原则

1.最近原则,即最久未被使用,越久未被使用越应该被优先删除

2.最少原则,即记录使用次数,使用次数越少越应该被优先删除

源码分析

LinkedHashMap维护一个LinkedHashMapEntry<K,V>的双向链表

1.双向链表的实现:链表中的结点持有两个结点的实例对象before、after
2.LinkedHashMap持有两个结点的实例对象head和tail作为链表的表头和表尾,代表可以从表头,或表尾查找/遍历链表


http://www.kler.cn/a/467109.html

相关文章:

  • 【前端知识】手搓微信小程序
  • html中下拉选框的基本实现方式及JavaScript动态修改选项内容情况总结
  • AngularJS HTML DOM
  • redis源码系列--(四)--redis cluster
  • 《Rust权威指南》学习笔记(二)
  • 音视频入门基础:MPEG2-PS专题(5)——FFmpeg源码中,解析PS流中的PES流的实现
  • 【C++】开源:Armadillo数值计算库配置与使用
  • 第28天:PHP应用Cookie脆弱Session固定Token唯一身份验证数据库通讯
  • 一文理解Vue.js 与 Vue Router:构建现代单页面应用
  • Maven 详细配置:Maven settings 配置文件的详细说明
  • vue3 css实现文字输出带光标显示,文字输出完毕,光标消失的效果
  • 145页PPT智慧矿山整体规划建设方案
  • cesium小知识:3D tiles 概述、特点、示例
  • 计算机网络复习(大题)
  • python对redis的增删查改
  • ASE50N03-ASEMI中低压N沟道MOS管ASE50N03
  • 什么是网络安全攻防演练,即红蓝对抗?
  • Ubuntu 23.10 换源
  • Huginn - 构建代理、执行自动化任务
  • C语言 memcpy和memcpy_s区别 - C语言零基础入门教程
  • 【开源社区openEuler实践】hpcrunner
  • 检查字符是否相同
  • 【AI日记】25.01.04 kaggle 比赛 3-3 | 王慧玲与基层女性
  • [python]实现可以自动清除过期条目的缓存
  • node.js内置模块之---stream 模块
  • 自动驾驶三维重建