字节跳动后端一面面经
面试题目
一、 项目拷打
- 视觉识别模型部署与工程落地:Base64传输优化、问题排查及优化策略。
- 天翼智能交通实习:单线程OOM原因、多进程与多线程对比、多进程解决OOM机制。
- Java高并发个人博客:布隆过滤器作用与局限、删除文章处理、缓存穿透与击穿解决方案。
- 航旅排障智能体:RAG文本切分策略、LLM工具调用机制、大规模工具集下的幻觉与调用准确性问题。
二、 基础八股
- MySQL:InnoDB底层数据结构,为什么选择B+树而非B树。
- 消息队列:RabbitMQ消息积压处理,增加消费者是否一定能解决消费速度问题。
三、 算法手撕
题目:下一个更大元素(每日温度类型题目)。
四、 反问环节
工作内容及实习生要求。
参考解析
- 布隆过滤器缺点与删除:布隆过滤器不支持直接删除,因位数组可能存在冲突。解决:使用计数布隆过滤器(Counting Bloom Filter)或在业务层增加逻辑删除位。
- 缓存穿透与击穿:穿透可使用布隆过滤器拦截,或缓存空对象;击穿可使用互斥锁(Mutex)保证同一时刻仅一个请求回源数据库,或设置热点数据永不过期。
- MySQL为什么选B+树:B+树非叶子节点不存数据,使得单节点能存储更多索引,树更矮胖,磁盘I/O次数更少;且叶子节点通过双向链表链接,更适合范围查询。
- RabbitMQ积压处理:通过扩容消费者、增加队列分区数提升并发,若仍无效则检查单条消息处理逻辑是否有阻塞,或采取降级策略丢弃非关键消息。
- RAG幻觉解决:通过意图识别(Query Routing)将大任务拆解,限制Tool可调用范围;引入思维链(CoT)或强制约束输出格式(如JSON Schema),降低模型偏差。