1. 10000个数相加,你准备怎么做?(考点是多线程,想考我CoundownLatch,但我不太记得了很尴尬)
2. Synchronized底层实现原理,线程是如何将Owner设置为自己的,这个过程怎么保证原子性
3. cas如何保证原子性?底层实现是什么?基于硬件还是软件实现的?
4. Springboot和spring的区别?问了一些spring配置文件的东西
5. SpringMVC使用的流程,好像是如何注入到容器的?在web.xml中如何配置?
6. springboot的自动装配原理是什么?自动装配spring.factories是基于什么机制?注解是如何生效的?为什么要有注解之类的问题
7. 说一下SpringMVC的执行流程吧,HandlerMapper是如何找到请求对应的Handler的?Map中的key是什么?DispatcherServlet加载哪些类可以配置吗?在哪里配?
8. 说一下覆盖索引,为什么要提出覆盖索引
9. 为什么用B+树不用B树
10. 事务隔离级别,什么情况下会出现幻读,不可重复读和幻读的区别是什么?
11. 间隙锁锁住的是什么?
12. redis如何保证缓存一致性,我回答了旁路缓存模式,问我如果读写并发,写还没完成缓存就删了,读线程把脏数据存到缓存怎么办?(这个地方是被他带跑了,其实我一开始说的就是先更新数据库再删缓存,这一块我也理解的不够深入,所以就不坚定了)
13. MySQL的锁,了不了解意向锁,意向锁是排他的吗?
14. 优先队列的底层实现是什么?堆可以用数组保存吗?
15. 反问,肯定凉了不想问了。。。
#面经##oppo#