一面
- 介绍项目
- java 线程池的实现原理,threadpoolexecutor关键参数解释
- hashmap的原理,容量为什么是2的幂次
- 为什么要同时重写hashcode和equals
- ConcurrentHashMap如何实现线程安全?
- 介绍Java多线程的5大状态,以及状态图流转过程
- 介绍下Synchronized、Volatile、CAS、AQS,以及各自的使用场景
- B+树和红黑树时间复杂度
- 如果频繁老年代回收怎么分析解决
- JVM内存模型,新生代和老年的回收机制
- mysql limit分页如何保证可靠性
二面
- 了解哪些排序算法,讲讲复杂度
- 手撕归并排序
- Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?
- redis的hash数据结构最多能存储多少个元素
- 自己如何实现RPC?
- mysql默认存储引擎?MyISAM、InnoDB、MEMORY的区别
- 什么是幻读,如何解决
- 事务隔离级别有什么?通过什么来实现的?分别解决了什么问题?
- 乐观锁与悲观锁的使用场景
三面:
- 自我介绍
- 参与的并发项目,从设计到部署,按照流程讲一遍。
- 项目相关你用过redis,用在什么场景,怎么使用的?
- mysql同步机制原理