字节面经-字节跳动后端开发岗面经-06
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 有多个消息投递到消息队列,处理的结果怎么与发送的请求对应呢?
- 为什么不直接通过数据库通信而需要用消息队列呢?
- 项目有没有前端流式输出展示?
- 身份认证是怎么做的?
- 你觉得langchain和langgraph框架提供了什么功能?
- 介绍一下实习项目当中,比较有挑战性的一个点
- 你们这个平台,有多少日活用户?
- Redis单机实例性能达到瓶颈了,有什么解决方案?
- 项目的乐观锁是怎么做的?
- 项目用到的这个分布式锁,底层原理有去了解过吗?
- 为什么sorted set不用B+树或红黑树,而用跳表呢?
- 3 Agent的核心组成和原理?
- 4 RAG是什么?
- mq幂等性怎么保证?
- 基于redis的pub和sub实现的动态配置中心消息丢失了怎么办?
- 为什么会索引会失效?
- 手撕:寻找数组第k大元素
- 你的项目的难点在于什么地方,在aicoding的全栈开发的流程是怎么样的呢,你如何解决这些问题的?
- 用的什么模型,不同模型有什么样的体感的区别?
- langgraph有哪些组件,以及它能实现的功能,这个框架的优点在哪里?
- 请给我介绍一下deepagents的设计的框架,也可以在白板上面画一下他的大概架构图,作为一个系统设计。那最近的agent swarm有了解么,是什么呢?
- 如何做评估的体系呢,怎么评判你的效果,或者bad case?
- 场景题:如果要你运用skills运用到你的项目当中,你需要怎么设计,请给我设计一下?
- Q: 为什么要去优化图片的 Base64 传输?
- Q: 具体是怎么优化的?
- Q: 为什么单线程处理时会发生 OOM(内存溢出)?
- Q: 为什么改成多进程而不是多线程?
- 挑一个有难点的项目详细介绍一下?
- 为什么用多进程解决 OOM,而不是多线程?
- 介绍一下 AI Agent 项目的完整链路和解决的问题?
- Planner 和 Executor 之间是如何通信的?
- 手撕:股票买卖,只买卖一次和买卖多次
- 本地缓存怎么实现的?
- 一个本地缓存应该具有什么样的能力呢?
- 让你实现一个本地缓存,选择什么数据结构能够实现这种基本能力?
- 1你说的设置过期字段是懒实现,怎么设置主动的删除过期数据?
- 2你了解redis过期怎么处理的?
- 如果用hashMap会有什么问题吗?
- java的集合有哪些?
- java的AOP在Spring项目中的实际应用有哪些?
- 如何理解ai agent?
- 能介绍一下TCP/IP协议栈(七层或四层模型)吗?
- HTTP协议的组成是什么?
- HTTP常见的请求头有哪些?
- 哪个HTTP Header字段标识长连接/短连接?
- Cookie字段的作用是什么?
- 项目如何判断请求成功或失败?
- C++和Python使用下来有哪些差异?
- ai应用(agent)的构建大致讲一下包含哪些模块
- 手撕 一个环有10个点0-9,0开始出发,每步顺时针或逆时针走一个点,求经过n步回到0点有多少种不同走法
- lua脚本怎么使用?
- 缓存扣减成功订单一定会成功吗?
- 消息发送失败怎么办?
- 缓存和真实的库存是一样的吗?
- Radis如果出现问题,数据丢失怎么处理?
- 订单一致性这个spring task定时任务怎么实现?
- 使用定时任务有什么弊端?
- 你介绍一个你最近做的项目,然后讲一下当时的背景,以及通过哪些技术方式去解决的哪些问题
- 你说可以通过 AI 的方式去识别卡牌,那这个 AI 识别卡牌的话怎么去确定卡牌信息呢?
- 你这里面用到那个 WebSocket,当时为什么去选择用 WebSocket 呢?
- 你这里面用到这个 Redis,看你这简历里面用到 Redis 的话,这个 Redis 主要是为了怎么解决什么样的场景呢?
- 基于 Canal 监听 binlog 的方式相比于缓存双删来说,它有什么缺点啊?
- 基于 Canal 监听 binlog 同步的时候,是不是读到的还是老的数据啊?
- 我看你这里面用到了 JWTC token,你之前实习的经历用到的,对吧?
- 1数组和链表有什么区别?
- 数组和链表的空间大小变化有没有什么区别?
- 哈希表的平均查找时间复杂度是多少?
- 哈希表是如何实现的?
- 哈希表的冲突解决是怎么解决的?
- 了解一致性哈希吗?
- 针对于 LRU 缓存策略,实现的话用什么数据结构?
- 项目为什么用的是JSON-grpc?
- 对mcp工具调用时的不同错误类型,你的设计有什么区别?
- 怎么封装的rpc超时重试机制?
- 假设客户端请求的QPS很高,高并发环境下怎么去优化性能?
- 讲一下SSE通信模式,他和websocket有什么区别?
- 怎么通过RAG对mcp工具的选择进行优化的?
- Cgroup 是如何工作的?
- 用的什么数据库引擎?
- innodb 事务?
- 用的什么隔离级别?
- 可重复读和读已提交的区别?
- 用户态和内核态有什么区别,如何发生切换?
- 栈和堆的生命周期区别?
- MySQL 事务了解吗?
- git 常用命令,回滚知道吗?
《参考解析》
- 这类问题建议结合自己的项目经历和岗位要求准备具体案例,突出思考过程而非死记结论,面试官更看重解决问题的逻辑。
- 介绍项目时应说明背景、个人分工、遇到的技术难点及解决方案,并量化收益(性能提升、成本下降等),便于面试官追问细节。
- CAS通过比较并交换实现无锁更新,失败后需要重试;库存扣减等高竞争场景可以引入版本号或分段计数减少冲突概率,避免忙等消耗过多CPU。
- 红黑树是内存内的平衡二叉树,追求单点操作的对数复杂度;B+树针对磁盘/索引场景做了扇出优化,减少IO次数,更适合范围查询和顺序扫描。
- 回答AI相关问题时应结合具体项目说明如何设计Prompt、评估效果以及处理边界情况(如幻觉、超时),并展示对模型能力边界的清晰认知。
- 算法题先明确边界条件与不变量,再选择合适的数据结构;双指针、哈希表、递归/迭代是常见工具,目标是把复杂度控制在线性或对数级别。
- 进程是资源分配的基本单位,线程是CPU调度的基本单位,协程是用户态的轻量级调度单位,切换成本远低于线程,但需要语言/运行时支持。
- LRU的核心是维护访问顺序,常见实现是哈希表+双向链表,做到O(1)的读写与淘汰;Linux内核用近似LRU(多级链表冷热分区)避免维护严格顺序带来的开销。