面灵AI

字节面经-字节跳动后端开发岗面经-06

时间
2026-08
来源
牛客网

《面试题目》

  1. 有多个消息投递到消息队列,处理的结果怎么与发送的请求对应呢?
  2. 为什么不直接通过数据库通信而需要用消息队列呢?
  3. 项目有没有前端流式输出展示?
  4. 身份认证是怎么做的?
  5. 你觉得langchain和langgraph框架提供了什么功能?
  6. 介绍一下实习项目当中,比较有挑战性的一个点
  7. 你们这个平台,有多少日活用户?
  8. Redis单机实例性能达到瓶颈了,有什么解决方案?
  9. 项目的乐观锁是怎么做的?
  10. 项目用到的这个分布式锁,底层原理有去了解过吗?
  11. 为什么sorted set不用B+树或红黑树,而用跳表呢?
  12. 3 Agent的核心组成和原理?
  13. 4 RAG是什么?
  14. mq幂等性怎么保证?
  15. 基于redis的pub和sub实现的动态配置中心消息丢失了怎么办?
  16. 为什么会索引会失效?
  17. 手撕:寻找数组第k大元素
  18. 你的项目的难点在于什么地方,在aicoding的全栈开发的流程是怎么样的呢,你如何解决这些问题的?
  19. 用的什么模型,不同模型有什么样的体感的区别?
  20. langgraph有哪些组件,以及它能实现的功能,这个框架的优点在哪里?
  21. 请给我介绍一下deepagents的设计的框架,也可以在白板上面画一下他的大概架构图,作为一个系统设计。那最近的agent swarm有了解么,是什么呢?
  22. 如何做评估的体系呢,怎么评判你的效果,或者bad case?
  23. 场景题:如果要你运用skills运用到你的项目当中,你需要怎么设计,请给我设计一下?
  24. Q: 为什么要去优化图片的 Base64 传输?
  25. Q: 具体是怎么优化的?
  26. Q: 为什么单线程处理时会发生 OOM(内存溢出)?
  27. Q: 为什么改成多进程而不是多线程?
  28. 挑一个有难点的项目详细介绍一下?
  29. 为什么用多进程解决 OOM,而不是多线程?
  30. 介绍一下 AI Agent 项目的完整链路和解决的问题?
  31. Planner 和 Executor 之间是如何通信的?
  32. 手撕:股票买卖,只买卖一次和买卖多次
  33. 本地缓存怎么实现的?
  34. 一个本地缓存应该具有什么样的能力呢?
  35. 让你实现一个本地缓存,选择什么数据结构能够实现这种基本能力?
  36. 1你说的设置过期字段是懒实现,怎么设置主动的删除过期数据?
  37. 2你了解redis过期怎么处理的?
  38. 如果用hashMap会有什么问题吗?
  39. java的集合有哪些?
  40. java的AOP在Spring项目中的实际应用有哪些?
  41. 如何理解ai agent?
  42. 能介绍一下TCP/IP协议栈(七层或四层模型)吗?
  43. HTTP协议的组成是什么?
  44. HTTP常见的请求头有哪些?
  45. 哪个HTTP Header字段标识长连接/短连接?
  46. Cookie字段的作用是什么?
  47. 项目如何判断请求成功或失败?
  48. C++和Python使用下来有哪些差异?
  49. ai应用(agent)的构建大致讲一下包含哪些模块
  50. 手撕 一个环有10个点0-9,0开始出发,每步顺时针或逆时针走一个点,求经过n步回到0点有多少种不同走法
  51. lua脚本怎么使用?
  52. 缓存扣减成功订单一定会成功吗?
  53. 消息发送失败怎么办?
  54. 缓存和真实的库存是一样的吗?
  55. Radis如果出现问题,数据丢失怎么处理?
  56. 订单一致性这个spring task定时任务怎么实现?
  57. 使用定时任务有什么弊端?
  58. 你介绍一个你最近做的项目,然后讲一下当时的背景,以及通过哪些技术方式去解决的哪些问题
  59. 你说可以通过 AI 的方式去识别卡牌,那这个 AI 识别卡牌的话怎么去确定卡牌信息呢?
  60. 你这里面用到那个 WebSocket,当时为什么去选择用 WebSocket 呢?
  61. 你这里面用到这个 Redis,看你这简历里面用到 Redis 的话,这个 Redis 主要是为了怎么解决什么样的场景呢?
  62. 基于 Canal 监听 binlog 的方式相比于缓存双删来说,它有什么缺点啊?
  63. 基于 Canal 监听 binlog 同步的时候,是不是读到的还是老的数据啊?
  64. 我看你这里面用到了 JWTC token,你之前实习的经历用到的,对吧?
  65. 1数组和链表有什么区别?
  66. 数组和链表的空间大小变化有没有什么区别?
  67. 哈希表的平均查找时间复杂度是多少?
  68. 哈希表是如何实现的?
  69. 哈希表的冲突解决是怎么解决的?
  70. 了解一致性哈希吗?
  71. 针对于 LRU 缓存策略,实现的话用什么数据结构?
  72. 项目为什么用的是JSON-grpc?
  73. 对mcp工具调用时的不同错误类型,你的设计有什么区别?
  74. 怎么封装的rpc超时重试机制?
  75. 假设客户端请求的QPS很高,高并发环境下怎么去优化性能?
  76. 讲一下SSE通信模式,他和websocket有什么区别?
  77. 怎么通过RAG对mcp工具的选择进行优化的?
  78. Cgroup 是如何工作的?
  79. 用的什么数据库引擎?
  80. innodb 事务?
  81. 用的什么隔离级别?
  82. 可重复读和读已提交的区别?
  83. 用户态和内核态有什么区别,如何发生切换?
  84. 栈和堆的生命周期区别?
  85. MySQL 事务了解吗?
  86. git 常用命令,回滚知道吗?

《参考解析》

  1. 这类问题建议结合自己的项目经历和岗位要求准备具体案例,突出思考过程而非死记结论,面试官更看重解决问题的逻辑。
  2. 介绍项目时应说明背景、个人分工、遇到的技术难点及解决方案,并量化收益(性能提升、成本下降等),便于面试官追问细节。
  3. CAS通过比较并交换实现无锁更新,失败后需要重试;库存扣减等高竞争场景可以引入版本号或分段计数减少冲突概率,避免忙等消耗过多CPU。
  4. 红黑树是内存内的平衡二叉树,追求单点操作的对数复杂度;B+树针对磁盘/索引场景做了扇出优化,减少IO次数,更适合范围查询和顺序扫描。
  5. 回答AI相关问题时应结合具体项目说明如何设计Prompt、评估效果以及处理边界情况(如幻觉、超时),并展示对模型能力边界的清晰认知。
  6. 算法题先明确边界条件与不变量,再选择合适的数据结构;双指针、哈希表、递归/迭代是常见工具,目标是把复杂度控制在线性或对数级别。
  7. 进程是资源分配的基本单位,线程是CPU调度的基本单位,协程是用户态的轻量级调度单位,切换成本远低于线程,但需要语言/运行时支持。
  8. LRU的核心是维护访问顺序,常见实现是哈希表+双向链表,做到O(1)的读写与淘汰;Linux内核用近似LRU(多级链表冷热分区)避免维护严格顺序带来的开销。