快手后端开发实习生一面面经

快手 · 后端开发实习生 · 一面 · 2026-06

《面试题目》

  1. 自我介绍
  2. Agent 项目介绍:记忆架构的重要性过滤是怎么做的?加入长期记忆后对系统的提升大吗?
  3. 向量检索和关键字检索的原理分别是什么?关键字检索为什么要用 ES 来做?
  4. 文档切分策略用的是什么工具?
  5. RAG 检索准确率还有哪些提升空间?
  6. 会话表结构是怎么设计的?
  7. 介绍一下 ReAct 的实现原理
  8. Spring AI 有哪些特性?和 Claude Code 或其他开源 Agent 框架相比,有什么优缺点?
  9. Redis 的数据结构有哪些?
  10. JVM 内存结构是怎样的?
  11. MySQL 慢 SQL 如何排查解决?
  12. 平时用过哪些 AI 编程 Agent?AI 在编程过程中能发挥什么作用?使用 AI 辅助编程有哪些技巧和心得?
  13. 日常编码时如何保证代码质量?
  14. 算法题:根据前序和中序遍历构造二叉树

《参考解析》

  1. ReAct 模式的核心思想:让大模型在”推理(Reasoning)“和”行动(Acting)“之间交替进行——模型先输出一段思考过程判断下一步该调用什么工具,再执行工具调用获取观察结果(Observation),并把结果重新拼接进上下文继续推理,如此循环直到得出最终答案,相比直接一步到位生成答案,ReAct 能显著提升复杂任务的可解释性和准确率。
  2. 前序中序构造二叉树:前序遍历的第一个元素即为根节点,在中序遍历结果中找到该根节点的位置,其左侧即为左子树的中序序列,右侧为右子树的中序序列,再根据左子树节点数量切分前序序列的对应区间,递归构造左右子树,可以用哈希表预存中序值到下标的映射把查找优化到 O(1),整体时间复杂度 O(n)。
  3. MySQL 慢 SQL 排查思路:先通过慢查询日志(slow_query_log)定位具体语句,再用 EXPLAIN 分析执行计划,重点看 type(是否走索引、是否全表扫描)、key(实际使用的索引)、rows(预估扫描行数);常见问题包括索引缺失、索引失效(如对字段做了函数运算或隐式类型转换)、数据量过大未分页、以及联合索引未遵循最左匹配原则。