一、项目经验
1. 异步方案:项目里有没有用到异步能力,比如Java异步工具或者消息队列。
2. 技术难题:讲一个你碰到最难的技术问题,以及怎么解决它。
3. 项目复盘:项目中哪个模块如果重来你会重新设计,说明理由。
二、Java多线程
1. 锁:乐观锁、悲观锁有什么差别,各自怎么实现,适合什么业务场景。
2. 线程池
- 任务提交之后,线程池完整的执行流程。
- 拓展:线程池怎么自动回收长时间空闲的线程,keepAliveTime底层原理。
3. JVM运行内存分区:堆、虚拟机栈、方法区等区域介绍。
三、MySQL数据库
1. MySQL各类锁:全局锁、表锁、行锁、间隙锁、意向锁等分类。
2. 索引调优:哪些情况会导致索引无法生效。
四、网络基础
1. HTTP请求报文由哪几部分构成。
2. HTTPS:TLS/SSL加密覆盖报文哪些部分。
3. TCP和UDP对比:连接特性、可靠程度、传输速度;UDP有没有适用场景。
五、Spring与JVM进阶
1. Spring IOC、AOP底层原理。
2. Spring Bean完整生命周期,从创建到销毁。
3. JVM
- 内存泄漏产生原因,怎么排查。
- 常见GC垃圾回收算法。
六、编程手写题
编写代码,求解最长无重复字符子串