字节全栈一至四面面经
- 轮次
- 一至四面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 介绍项目情况以及最终产出。
- 实习及项目经历深挖。
- StringBuilder 和 StringBuffer 有什么区别?
- ConcurrentHashMap 如何保证线程安全?
- Lock 和 synchronized 有什么区别?
- String 为什么是不可变的?
- == 和 equals 有什么区别?
- select 语句的执行流程是什么?
- 聚簇索引和非聚簇索引有什么区别?
- MySQL 用的是 B 树还是 B+ 树?为什么用 B+ 树?
- MySQL 在高 QPS 下如何解决并发写入压力?
- AI 的相关原理了解多少?
- 联合索引 type、create_time、name 在给定查询下能命中哪些字段?
- 转账场景根据什么判断业务正常执行?
- 最长连续序列怎么解?
- AI Coding 面试怎样展示解题过程?
- 实习和项目中如何使用 AI?
- MCP 和 Skill 怎么理解?
- Skill 和 Prompt 有什么区别?
- Prompt 可以跨会话复用吗?
- 实习期间最有技术挑战的一件事是什么?
- 脏读、不可重复读、幻读分别是什么?
- InnoDB 在 RR 隔离级别下如何解决幻读?
- 索引失效的原因有哪些?
- 常见的幂等设计方案有哪些?
- 如何设计 Feed 流?大 V 场景会遇到什么问题?
- 用户下单后规定时间内未支付,如何设计订单自动取消?
- RocketMQ 原生支持延迟消息到什么时间级别?
- 不用消息队列时如何完成订单自动取消?
- Redis 挂了导致数据丢失怎么办?
- 降级到扫表时如何做到秒级?
- Leetcode 检查子树怎么做?
- 如何评价一个项目的具体效益?
- 如何判断自己能力的长短板?
- 怎样看待实习带来的成长?
- AI 对未来的影响怎么看?
《参考解析》
这场面试的主线是“基础是否扎实、项目是否真做过、AI 工具是否真的进入工程流程”。Java 部分要把 String 不可变、字符串常量池、ConcurrentHashMap 的分段/桶级并发和 synchronized 锁升级串起来,不能只背结论。MySQL 要能解释 B+ 树为什么适合范围查询和磁盘页,联合索引按最左前缀匹配,like 以 % 开头通常无法有效利用索引。
三面开始明显偏系统设计。Feed 流要区分推模式、拉模式和推拉结合:普通用户拉、大 V 写扩散要设阈值,配合收件箱、分页游标和去重。订单自动取消可以用延迟消息,也可以扫表加时间轮/分片,但要回答消息丢失、重复消费、积压和秒级精度。幂等要落到业务唯一键和数据库唯一约束,不能只靠 Redis 锁。
AI 部分不要只讲工具名。要说明如何把需求拆给模型、如何限制改动范围、如何用测试和人工 review 验收,以及 MCP、Skill、Prompt 各自的边界。