1

发布于 2022年 04月 02日 04:03

1、redis介绍:

redis是一个开源的、高性能的K-V数据库
  • 三大特性:
    • 数据可以持久化,可以将内存中的数据持久化到本地磁盘中,带重启时再次加载使用
    • redis支持多种数据类型:字符串(String),列表(list),哈希(hash),集合(set),有序集合(zset)
    • redis支持备份,即master-slave模式的数据备份
  • ps:redis性能很高,数据类型丰富,原子性(要么都成功,要么都失败),支持设置过期时间
  • 与其他k-v数据库不同:1、支持多种数据类型,2、数据可以持久化到磁盘。
2、hashmap原理:

见:https://juejin.cn/post/6844903559322927112

3、hashmap的容量为什么是2的幂次

  • 通过操作添加k-v键值对是,具体确定此元素的位置是通过hash值%hash表的长度计算的(hash%table.length),但是模运算的消耗非常大,通过位运算hash&(length - 1)也可以获取取模后的存放位置,而且位运算的运行效率高,但是只有length的长度是2的n次方时,h&(length-1)才等价于h%length。
  •  当数组长度为为2的n次幂时,不同ke计算出的index相同的几率很小, 那么数据在数组上分布的就比较均匀,也就是碰撞减少了,还有查询的时候就不用遍历某个位置上的链表,这样查询效率很提高了。
4、object类你知道的方法:

5、设计模式

6、排序

见:https://juejin.cn/post/6844903488892174343;

5、集合综合--见自己收藏的

6、什么是一致性、隔离性

7、Java的内存模型和垃圾回收

8、动态代理

见:https://blog.csdn.net/heyutao007/article/details/49738887

9、java的多态

10、数据结构


推荐文章