时隔一个月以上,将一些陈旧的面经放出来
面试全程两小时,我这边网速有点拉跨,但是面试官很不错,全程悉心交流,顺便指出了项目业务设计中可能存在的一些不足。
1.自我介绍
2.场景题,本来是需要控制台输入输出,面试官说可以用restful接口实现,数据可以不存在数据库
3.创建单例Baen保存数据有哪些问题
4.并发条件下调用ArrayList的put()方法有没有线程安全问题,如何解决
5.你这里用的Resource注入,还有没有别的依赖注入方式,他们的区别
6.说到了Spring循环依赖,说一下
7.你说到了synchroized,说一下原理是什么
8.synchronized和lock的区别
9.线程池中执行任务的线程之间如何通信,提交了A,B,C三个任务到线程池,现在A执行一半后,需要得到B执行一个阶段后的数据才能继续执行,同时B也需要A执行完后的数据才能继续执行,如何实现,说说思路
10.你在项目中怎么做的索引优化和sql优化
11.数据库事务特性和隔离级别
12.说说MVCC机制的原理
13.回表和索引下推了解吗
14.项目中用redis做了什么功能,除了用到的这几个,redis常用数据结构还有哪些?
15.一个被高并发访问的key突然失效属于什么问题,有哪些解决方案
16.你在项目中redis和mysql是如何保持数据一致性的,是否能完全保证并发数据安全
17.项目中用到了哪些mybatis标签
18.#{}和${}的区别是什么
19.mybatis的接口和xml文件如何一一对应,mapper中的接口能否重载