7.31 一面面经:
八股盛宴
1.强引用、软引用、弱引用、虚引用的区别
2.哪些场景使用了抽象类,哪些场景使用了接口
3.为什么不直接使用实现类,而是要使用接口
4.除了责任链和模板模式,在项目里面还使用了其他设计模式吗
5.怎么通过工厂模式来装配责任链的,介绍下流程
6.你了解哪些集合
7.hashmap和treemap是线程安全的吗
8.concurrentHashMap保证线程安全的原因
9.ThreadLocal的原理和使用场景
10.怎么创建线程池
11.缓存线程池和固定线程池
12.自定义线程池应该设置哪些参数,这些参数是怎么用到的
13.项目里面哪些场景使用了线程池
14.什么情况需要扫描数据库
15.发送mq和写数据库是怎么样的时序
16.补偿的时候看哪些状态
17.项目里面线程池是什么时候初始化的
18.异常分为哪两类
19.举一个编译时异常的异常?
20.捕获到异常怎么处理?项目里面怎么捕获和处理异常
21.spring bean的声明周期
22.spring的事务传播机制了解那几种
23.spring实现AOP的两种方式
24.使用redis来做什么事情,redis使用了哪些数据结构
25.什么时候缓存到redis中,目的是什么
26.redis和数据库怎么保证一致性的,如果库存没卖完,怎么保证一致性
27.加分布式锁的目的
28.Redis缓存穿透的解决方案
29.如何保证缓存与数据库双写的一致性
30.数据库中的事务特性,隔离级别,脏读,重复读,幻读
31.索引数据结构,使用B+树的原因
32.为什么 B+ 树设计得比较矮(即树的高度低),可以减少 IO 次数,有什么关联
33.查询的优化
📋手撕
:判断链表是否为回文结构
👀反问:校招生刚来公司会有些什么阶段