AI 后端一面、二面面经
完整信息
本篇目录
ThunderBit 面经(AI 开发岗)
一面(视频面,~55 分钟)
面试官是技术负责人,主要考察项目深挖 + 计算机基础 + 场景题。
一、自我介绍
简单介绍学校专业、项目经历、投递这个岗位的原因。
二、项目深挖
你第一个项目用到了状态机,状态机主要是干嘛的?这个流程有哪些状态,状态之间是怎么流转的?
你提到了分布式锁和幂等防重,讲讲这两个分别是什么、有什么区别?
Redis 缓存中,为什么把会话这种热数据放缓存,不直接放数据库?
如果 Redis 挂了,数据会丢吗?
在 AI 调用中为什么特别在意消息重复提交的问题?
AI 是怎么调用工具的?整个流程是怎么样的?
这个工具是否执行,是由大模型决定的,还是由外面的主线程来执行的?
那你觉得 LLM 那部分是子线程吗?
三、计算机基础
ArrayList 和 LinkedList 的区别是什么?使用场景有什么不同?
两者访问的时间复杂度分别是多少?
HashMap 底层结构是什么样的?put 一个元素的完整过程是怎么样的?
你觉得 HashMap 线程安全吗?
在并发场景下应该怎么避免?
ConcurrentHashMap 和 HashMap 的区别?为什么能保证线程安全?
synchronized 和 volatile 有什么区别?
线程池有哪些核心参数?任务提交时的工作流程?
四、数据库
MySQL 索引为什么能加快查询?索引失效有哪些常见情况?
讲讲你对 ACID 的理解?各特性分别怎么实现的?
五、缓存
- 缓存击穿、缓存穿透、缓存雪崩分别是什么?怎么应对?
六、场景题
- 项目上线后用户反馈偶尔很慢,你从哪些地方入手排查?
七、技术栈 & 学习经历
Spring AI、LangChain、MCP 这些都是自学的吗?
学习过程中有没有遇到什么困难?最后是怎么解决的?
语音项目在弱网/断网环境下怎么保证语音快速且不漏地识别?
之前有实习过吗?老师有带什么项目吗?
现在大二下,大三还有课吗?实习会影响吗?
二面(CTO 电话面)
面试官是 CTO,侧重项目落地的实际效果 + 底层原理 + 智力题。
一、自我介绍
二、项目落地效果
- AI 编程助手项目效果如何?
三、Claude Code 源码泄漏 & 内部实现
Claude Code 源码泄漏后有了解吗?
Claude Code 的内存机制怎么做的?
Claude Code 的检索怎么做的?
四、智力题
- 智力题四连
25 匹马:25 匹马,每次最多 5 匹比赛,没有计时器,找出最快的 3 匹最少需要几场?
答案:7 场。
思路:① 分 5 组各比 1 场(5 场),取每组第 1;② 5 个组第 1 比 1 场(第 6 场),确定第 1 名;③ 第 2/3 名候选:第 1 名所在组的第 2/3 + 第 2 名所在组的第 1/2 + 第 3 名所在组的第 1,共 5 匹比最后 1 场(第 7 场)确定第 2/3。
3 开关灯:一个房间里有 3 盏灯,门外 3 个开关,只能进房间一次,如何确定每个开关控制哪盏灯?
答案:先开开关 A 等几分钟(让灯泡发热),然后关掉 A 开 B,立刻进屋。亮着的是 B 控制,摸一下不亮的两盏——热的是 A 控制,冷的是 C 控制。
村庄男女:一个落后村庄,生男孩就停,生女孩就继续生直到生出男孩。问最后男女比例?
答案:1:1。每次生育男女概率始终为 1/2,策略改变不了生物学概率。数学上每个家庭必有 1 个男孩(结束条件),女孩期望数 = (1-p)/p = 1,所以男女期望比 1:1。直观理解:每次出生扔一枚公平硬币,无论何时停止,已扔结果的比例不变。
老鼠和毒酒:1000 瓶酒中有 1 瓶毒酒,用最少的老鼠找出毒酒(老鼠喝毒酒后一段时间会死,需在有限时间内给出结果)。
答案:10 只老鼠。
思路:二进制编码。1000 < 2^10 = 1024,用 10 只老鼠分别代表 10 个二进制位。每只老鼠喝对应位为 1 的所有瓶中的酒。最终根据哪些老鼠死了,直接还原出毒酒瓶号的二进制编码。
(因为lz对智力题有所准备所以前两个当炮灰了)
五、其他
- 学校地点,实习时长
整体复盘总结
一面侧重点
计算机基础(Java 集合、并发、JMM、MySQL、Redis)—— 八股但必须烂熟
项目深挖(MCP 工具调用全链路、分布式锁/幂等、缓存设计)
场景题(线上排查)—— 考察工程化思维
学习能力和自驱力
二面侧重点
项目实际效果:不只看你做了什么,还看你的项目到底有没有用
行业技术视野:Claude Code 源码泄漏事件 + 内部实现原理(上下文管理、检索机制)——面试官在考察你是否关注 AI 编程工具赛道的前沿动态
智力题:考察逻辑思维和临场反应,二面常见
工作安排:确认实习可行性
总体面下来感觉良好,有些点没有讲到自己想要的效果。面试官人很nice,全程不会压力你,并且愿意换问题给机会。
本篇目录
当前问题0134
- 01
简单介绍学校专业、项目经历、投递这个岗位的原因。
- 02
你第一个项目用到了状态机,状态机主要是干嘛的?这个流程有哪些状态,状态之间是怎么流转的?
- 03
你提到了分布式锁和幂等防重,讲讲这两个分别是什么、有什么区别?
- 04
Redis 缓存中,为什么把会话这种热数据放缓存,不直接放数据库?
- 05
如果 Redis 挂了,数据会丢吗?
- 06
在 AI 调用中为什么特别在意消息重复提交的问题?
- 07
AI 是怎么调用工具的?整个流程是怎么样的?
- 08
这个工具是否执行,是由大模型决定的,还是由外面的主线程来执行的?
- 09
那你觉得 LLM 那部分是子线程吗?
- 10
ArrayList 和 LinkedList 的区别是什么?使用场景有什么不同?
- 11
两者访问的时间复杂度分别是多少?
- 12
HashMap 底层结构是什么样的?put 一个元素的完整过程是怎么样的?
- 13
你觉得 HashMap 线程安全吗?
- 14
在并发场景下应该怎么避免?
- 15
ConcurrentHashMap 和 HashMap 的区别?为什么能保证线程安全?
- 16
synchronized 和 volatile 有什么区别?
- 17
线程池有哪些核心参数?任务提交时的工作流程?
- 18
MySQL 索引为什么能加快查询?索引失效有哪些常见情况?
- 19
讲讲你对 ACID 的理解?各特性分别怎么实现的?
- 20
缓存击穿、缓存穿透、缓存雪崩分别是什么?怎么应对?
- 21
项目上线后用户反馈偶尔很慢,你从哪些地方入手排查?
- 22
Spring AI、LangChain、MCP 这些都是自学的吗?
- 23
学习过程中有没有遇到什么困难?最后是怎么解决的?
- 24
语音项目在弱网/断网环境下怎么保证语音快速且不漏地识别?
- 25
之前有实习过吗?老师有带什么项目吗?
- 26
现在大二下,大三还有课吗?实习会影响吗?
- 27
AI 编程助手项目效果如何?
- 28
Claude Code 的内存机制怎么做的?
- 29
Claude Code 的检索怎么做的?
- 30
25 匹马,每次最多 5 匹比赛,没有计时器,找出最快的 3 匹最少需要几场?
- 31
一个房间里有 3 盏灯,门外 3 个开关,只能进房间一次,如何确定每个开关控制哪盏灯?
- 32
一个落后村庄,生男孩就停,生女孩就继续生直到生出男孩。问最后男女比例?
- 33
1000 瓶酒中有 1 瓶毒酒,用最少的老鼠找出毒酒(老鼠喝毒酒后一段时间会死,需在有限时间内给出结果)。
- 34
学校地点,实习时长