MySQL
- MySQL:重点掌握ACID 事务与隔离级别实现
I: 隔离性-> 使用锁实现
AD:原子性和持久性 -> 主要是UndoLog实现
C:一致性 -> 主要是Redo Log实现
- MVCC机制
- 索引失效场景
- 最左前缀原则
- B+树与其他数据结构的优势和树高的计算(对比hash、b树等数据结构)
- InnoDB与MyIsam区别
- 了解集中其他存储引擎:memory与archive(知道就行)
- 索引下推原理
- InnoDB的行级锁:next-key lock、gap lock以及记录锁
- MySQL执行语句会发生什么? -> 连接器-分析器-优化器-执行器-存储引擎
- 二级索引与联合索引存储方式
- 数据库的主从同步原理
- MySQL三范式
- MySQL的分库分表原则
Redis
- Redis数据结构底层:SDS、listpack、跳表、压缩列表、quicklist
- Redis的GEO、bitmap、HyperLogLog原理
- Redis为什么快?
- Redis与Memcached区别
- Redis常用场景
- Redis的持久化方式(AOF和RDB)
- AOF和RDB原理
- Redis的过期删除策略和淘汰策略
- Redis的如何保持数据库与缓存双一致
- 缓存穿透、缓存击穿、缓存雪崩、缓存预热以及缓存降级
- Redis的单线程和多线程的理解
- Redis的事务
- Redis的主从、哨兵、集群模式原理
- Redis的分布式锁细节
- RedLock原理
计网
- 三次握手和四次挥手原理以及为什么是三次和四次
- HTTP 1.0 1.1 2.0的区别
- HTTPs和HTTP区别
- DNS解析过程
- TCP的拥塞控制、流量控制、滑动窗口
- TCP和UDP区别
- TCP的MSS与IP的MTU区别
- 常用状态码:200、400、404、500…
- OSI七层协议
- SYN泛洪攻击
- 输入URL会发生什么?
- 如何考虑分布式Session问题?
Java虚拟机
- 双亲委派机制
- 为什么要打破双亲委派机制
- JVM运行数据区
- 类加载的过程:加载-验证-初始化
- 类加载器:ClassLoader:bootstrap、ext、sys
- 为什么需要自定义类加载器
- minor GC和Full GC触发的条件
- 引用计数算法、GC roots(可达性分析算法)
- 标记复制算法、标记压缩算法、标记清除算法
- Serial、Serial old 、parallel scaveage、parNew 、CMS、G1垃圾回收算法
- remember set与Card table作用
- Java对象的强引用、软引用、弱引用与虚引用
- Java对象栈上分配、逃逸分析以及标量替换
- Java对象访问方式:句柄访问以及直接访问
- Java分配对象的方法:指针碰撞与空闲列表
- OOM问题