二面（2026年3月19日)
自我介绍&实习经历
1.请做一下自我介绍,
2.实习3个月主要做了什么?
数据存储方案
3.你知道的数据存储方案有哪些？想存数据可以往哪存？有多少选择?
4. MongoDB、ES和MvSQL的区别是什么?
5.你听说过关系型数据库和文档型数据库吗？它们的区别是什么?
MySQL存储引擎&事务
6.MySQL用的是什么存储引擎？
7.InnoDB的事务能不能跨库生效？为什么?
8.InnoDB的事务隔离级别有哪些?
9.可重复读是否解决了幻读问题？
10.可重复读在什么场景下幻读问题没有被解决?
11.幻读问题有什么解决方法?
12.InnoDB的事务在什么情况下会出现死锁？怎么避免?
ES vs MySQL查询
13.ES能支持模糊查询效率更快，MySQL为什么不行?
14.ES有倒排索引，MySQL为什么不行?
15.B+树在什么场景下查询比较高效?
16.什么情况下MySQL查询索引会失效?
Java 并发控制
17.Java里面的并发控制机制有哪些?
第2页
18.怎么保证线程安全?
19.volatile的作用是什么?
20.还有别的线程安全机制吗？
21.加锁有哪些方案?
支付系统设计
22.设计一个支付功能：数据结构怎么设计？怎么保证不会多支付或少支付?
23.用本机存储支付数据是安全的吗？
24.一个用户只会有一条记录吗?
25.支付情况要怎么设计？会有状态机来描述支付进度吗?
26.你自己不存支付状态，每次都查支付宝吗?
27.支付情况指代的是什么？有哪些状态?
<6.用户下单支付的整个执行过程是什么样的?
29.发起支付请求，先落DB还是先调支付宝?
30.如果先调支付宝，用户支付成功但你超时了/系统宕机了会怎样?
31.用户没有单子了，这合理吗？要怎么改?
32.正确的执行步骤应该是什么样？
33.落库的状态是什么？最开始落库应该落什么状态?
34.如果支付宝有bug，一次告诉你支付失败，第二次告诉你支付成功，你怎么处理?
35.这个过程有需要用到事务的场景吗？事务里有几个SQL?
分布式
36.分布式事务怎么做？了解过吗？有哪些方案?
37.分布式锁是怎么做的?
算法题
38.实现一个函数calculate，计算给定字符串的表达式结果。