![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaEE
DY编程怪兽
You can go as far as you want to go.
心有多远,你就能走多远。
展开
-
利用LinkedHashMap怎么实现LRU缓存
概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题。LinkedHashMap的存储结构是HashMap的存储结构+双向链表,LinkedHashMap 对访问顺序也提供了相关支持,了解其工作原理必选先了解HashMap的工作原理。 数据结构 以上是LinkedHashMap大致的数据结构,红色的双向箭头表示链表的引用方向,LinkedHashMap在hashmap原有...原创 2020-11-18 10:30:36 · 432 阅读 · 0 评论 -
30分钟解决面试HashMap的所有问题
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中HashMap的实现原理进行讲解,并对JDK1.8的HashMap源码进行分析。 面试官的灵魂拷问 谈一下HashMap的特性? HashMap中hash函数是怎么实现的? 为什么HashMap数组的长度必须是2的N次幂? HashMap的扩容机制...原创 2020-11-09 21:35:47 · 217 阅读 · 0 评论 -
java垃圾回收机制分类整理
一、确定垃圾 1.1引用计数法 引用和对象是有关联的、如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。 1.2可达行分析(GCRoot) 为了解决引用计数法的循环引用问题,Java 使用了可达性分析的方法。通过一系列的“GC roots” 对象作为起点搜索。如果在“GC roots”和一个对象之间没有可达路径,则称该对原创 2020-10-27 09:55:47 · 643 阅读 · 0 评论