- 博客(4)
- 收藏
- 关注
原创 一文看懂HashMap的实现原理。
数组内的元素保存了 key 和 value。当要塞入一个键值对的时候,会根据一个 hash 算法计算 key 的hash 值,然后通过数组大小 n-1&hash 值之后,得到一个数组的下标,然后往那个位置塞入这键值对。当链表的长度大于8 且数组大小大于等于 64 的时候,就把链表转化成红黑树,当红黑树节点小于 6的时候,又会退化成链表。HashMap 基于哈希表的数据结构实现,允许存储键值对,并且通过键快速访问对应的值。在 JDK1.7 及之前链表的插入采用的是头插法,即在链表的头部插入新的键值对。
2024-09-01 19:36:19 629
原创 Redis跟DB的数据一致性问题?
首先redis它本身就是ap模型,它本身就有数据丢失的情况(持久化、主从切换)、根本无法保证数据的强一致性。所以用redis做缓存,业务必须能够去接收一定的数据一致性问题,不适合强一致性的场景。解决这个数据一致性问题,只需要给redis加过期时间,设置5min 最多只有5min不一致,来保证最终一致性即可。Redis和数据库(DB)的数据一致性问题是指在使用Redis作为缓存层时,由于数据更新的异步性,可能会出现Redis中的数据与数据库中的数据不一致的情况。这种情况可能导致用户看到的数据不准确。
2024-08-30 16:27:08 414
原创 什么是JVM?
JVM指的是Java虚拟机(Java Virtual Machine)。JVM本质上是一个运行在计算机上的程序,它的职责是运行Java字节码文件,Java虚拟机上可以运行Java、Kotlin、Scala、Groovy等语言。
2024-08-26 20:34:26 234 1
原创 MySQL索引底层结构为什么用B+Tree?
共同特性:小的索引在左边,大的索引在右边。区别:B树每一个节点都存储了索引和数据。而 B+树它把所有的数据都放在了最下面的叶子节点,而非叶子节点只存储索引。这样就可以留出更多的空间,去存储更多的索引,从而可以组织一颗更宽的一颗 B+树,树更宽的话,是不是进行 i/o 的数据检索次数就更少了,进而查询效率就更快。第二点区别: B+树它通过双向链表去连接了每一个叶子节点,那么这样的话就会让他的范围查询的性能就会更好。
2024-08-26 11:13:06 1479 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人