本文对JDK11下HashMap的源码进行分析,HashMap的实现在JDK8之后做了比较大的改动,之后就大同小异,对于JDK8也是可以适用的。
存储结构
再JDK1.7以前,HashMap采用位桶+链表来实现,使用链表拉链法来处理Hash冲突,当相同hash值的元素较多时,需要遍历链表查找的效率就比较低。
因此JDK1.8以后采用位桶+链表+红黑树来实现,……继续阅读 »
悠悠
2年前 (2022-06-28) 4926浏览 2评论
100个赞
一般在数据库查询压力比较大,高并发要求比较高,读写速度要求比较高的场景下,我们会引入redis缓存。因为redis缓存本身基于内存进行操作,相对于基于磁盘的数据库来说,在速度并发上面有一个数量级以上的差距。
但是redis缓存的引入同样会增加系统复杂性以及带来一系列问题,比如:
缓存和数据库数据一致性问题
缓存失效问题,伴生的缓存预热,缓存击穿,缓存雪崩等……继续阅读 »
悠悠
2年前 (2022-06-25) 3452浏览 0评论
4个赞