一面
- hashmap与concurrenthashmap的区别
- 垃圾回收算法以及垃圾回收器
- CMS的回收步骤
- G1和CMS的区别
- CMS哪个阶段是并发的哪个阶段是串行的?
- G1内部是如何分区的(region)
- HashMap如何解决Hash冲突
- my sql 索引类别
- 什么是覆盖索引
- b+树和b树的区别
- 为什么选用自增量作为主键索引
- my sql如何优化查询
- my sql如何在RR隔离级别下避免幻读问题:间隙锁
- my sql范式和反范式的区别以及彼此的优缺点
- AOF如何缩减自身文件大小
- AOF缩减自身文件大小的时候,数据库来了新的操作怎么办?
- 多线程了解么?
- 死锁条件以及破坏死锁条件的方法
- volatile做什么用的,如何实现可见性的
- volatile和atomic的区别
- atomic底层是如何实现的
二面
- 表锁 行锁 乐观锁 悲观锁的特点和区别
- 并发工具包有哪些,具体怎么用
- Lock和Synchronized的区别
- 分布式下redis如何保证线程安全
- Kafka讲一讲
- Docker平时怎么使用的
- 几种线程池区别
- Kafka如何解决数据堆积
- kafka消息的存储机制
- 如何用kafka保证消息的有序性
- kafka如何保证并发情况下消息只被消费一次
三面
- redis用的哪个版本
- 如何搭建redis集群
- redis如何主从