JAVA基础
- HashMap和ConcurrentHashMap的区别
- ConcurrentHashMap的数据结构
- volatile的作用
- Atomic类如何保证原子性
- synchronized和Lock的区别
- 为什么要使用线程池
- 核心线程池ThreadPoolExecutor的参数
- ThrreadPoolExecutor的工作流程
JMV
- 运行时数据区的数据结构
- 垃圾回收机制
- 垃圾回收算法
Spring
- Sping IOC /AOP的实现
- 动态代理的实现方式
- Spring如何解决循环依赖(三级缓存)
- Spring的@Transaction是如何实现的
Mysql
- 事务的隔离级别
- 如何解决事务的并发问题(脏读,幻读)
- MVCC多版本并发控制
- 为什么选择B+树作为索引结构
- 索引B+树的叶子节点都可以存哪些东西
- 查询在什么时候不走索引
Redis
- Redis支持的数据类型
- Zset跳表的数据结构
- Redis数据的过期策略
- Redis的持久化机制
常用算法: