字节跳动 | 抖音支付暑期实习面经(一二三面)
一面(技术面)
自我介绍后直接进入算法题:
- 算法题:对折链表(如1→2→3→4→5输出3→2→4→1→5)这题在山羊算法训练营的链表专题里专门讲过,训练营老师教我们先用快慢指针找中点,再反转后半部分最后合并,思路特别清晰!
八股环节:
- Redis主从复制原理
- Redis跳表实现
- TCP半连接状态(三次握手时的SYN_RECV状态)
- TCP滑动窗口原理
- 多线程安全方案(锁、CAS、ThreadLocal等)
- Java Future作用
- 分代GC原因(新生代老年代区别)
- MySQL脏读/幻读及解决方案
- MVCC原理
- 行锁/间隙锁实现
- SQL题:求学生总成绩TOP5(GROUP BY+SUM+ORDER BY+LIMIT)
项目相关:
- 论文研究方向
- 学习路线
- 项目难点及解决方案
二面(技术面)
- 算法题:两个有序数组找第K小数训练营二分查找专题的经典例题,老师教过"比较A[k/2]和B[k/2]"的核心思路
- 设计模式:常用设计模式SOLID原则
- Redis底层:跳表、字典等实现
- 项目深挖
三面(终面)
- 事务隔离性:Spring事务实现(这个没答好)数据库隔离级别
- 算法题:岛屿数量(DFS/BFS)训练营图论专题重点题目,可惜面试时忘记标记visited导致segfault后来复盘时发现训练营的"岛屿问题解题模板"其实都讲过
血泪教训
最后挂在岛屿问题实在可惜!后来在训练营的老师安排了面试复盘,老师专门指出:
- 要先写框架再填细节
- 遇到bug先检查边界条件
- 常用DFS模板要背熟