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、数据可以持久化到磁盘。
见: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相同的几率很小, 那么数据在数组上分布的就比较均匀,也就是碰撞减少了,还有查询的时候就不用遍历某个位置上的链表,这样查询效率很提高了。
5、设计模式
6、排序
见:https://juejin.cn/post/6844903488892174343;
5、集合综合--见自己收藏的
6、什么是一致性、隔离性
7、Java的内存模型和垃圾回收
8、动态代理
见:https://blog.csdn.net/heyutao007/article/details/49738887
9、java的多态
10、数据结构