二哥项目资料

27 家 700 道派聪明RAG真实面经参考(不断更新中)

正文 52,237 字 #15 原文
本文目录 · 156 节

星球:Java进阶之路&二哥编程星球 | 专栏:派聪明RAG知识库 | 作者:沉默王二 | 发布:2025-10-13

27 家 700 道派聪明RAG真实面经参考(不断更新中)

27 家 700 道派聪明RAG真实面经参考(不断更新中)

技术派上阅读体验比知识星球更好: https://paicoding.com/column/10/25 光格式整理了一个小时,细糠,大家慢慢吃,基本上能把派聪明的所有题目都覆盖到了,面试再也不愁。兄弟姐妹们,派聪明 RAG 这个项目真值了呀。

1.快手快 star

  1. 描述一下上传文件,提问到显示答案整个数据流以及涉及到的模块/技术栈,
  2. 怎么 chunk 的,为什么这么做?
  3. 用的什么模型,有对比过吗
  4. 检索结果不符合预期怎么办
  5. ES 里怎么存的
  6. 分片上传是怎么做的?断点续传?你这个场景有意义吗

2.小红书一面

AI & RAG 相关

  1. RAG 怎么解决 LLM 上下文窗口有限的问题?
  2. RAG 里的“重要性重排序”是怎么判断哪个内容更“重要”的?
  3. 流式对话支持多轮吗?怎么实现的?
  4. 提示词做了哪些优化?如果多轮对话关联性不强,怎么抓住新问题的重点?
  5. OpenAI 协议里,上下文的角色有哪几种?
  6. system, user, assistant 这几个角色在使用上有什么区别?

Java 基础 & 并发

  1. 讲讲 Java 不同更新版本的区别,特别是关键版本。
  2. 为什么 Spring Boot 3.x 要用 Java 17+的版本?项目里用了哪些新特性?
  3. Lambda 表达式和 Stream API,跟传统的 for 循环比,优缺点是什么?
  4. parallelStream()为什么性能好?底层是什么实现的?
  5. 如果不用 parallelStream,用传统 for 循环自己写并发提交任务,代码大概分几块?
  6. 都说 Java 线程“重”,Go 协程“轻”,这个“重”具体体现在哪?
  7. 为什么 Java 线程实际只用很少的栈,但 JVM 却要给它分配那么大的栈空间?
  8. 协程到底是个什么东西?
  9. Java 里写 for 循环有几种方式(比如用索引 i,用迭代器),它们有什么区别?

算法手撕

  1. 实现一个函数,找出字符串里所有长度大于 1 的子回文串。

3.某对标亚信公司一面

  1. 面了一家听说对标亚信的公司,面试官口头和我说过了,下一轮 boss 面让我瞎聊就行
  2. java 基础和集合查缺补漏面经:
  3. embedding 用什么模型?
  4. 混合检索?怎么评估准确性?
  5. 大模型的选择
  6. 上下文管理?
  7. redis 的击穿, 雪崩,穿透
  8. AOP
  9. MySQL binlog 监听通过主从复制原理
  10. ThreadLocal
  11. 消息队列,消息如何不丢失?

要我现场跑跑派聪明,没跑起来。。。很悲催,我没改前端也不怎么熟悉流程。

4.未知公司

面经:

  1. 1、介绍项目从数据上传到最后存入数据库的流程、RAG 流程
  2. 2、切块的步骤、如何评价优化前后的 RAG 的好坏
  3. 3、针对用户不同的提问:提问语句长短不同,分别怎么检索?
  4. 4、向量化的数据有做处理吗?

5.腾讯二面

  1. 1.派聪明技术选型,如为什么用 minio 做文件存储、选择 es 等
  2. 2.rag 的准确率如何优化
  3. 3.语块如何分片
  4. 4.es 相关
  5. 5.大文件也可以断点续传为什么要分片?
  6. 6.从用户体验上来说,一个文档也没有很大,分片上传的提升并不大,这里如何考虑的?

6.合合信息一二面

一面面经

拷打项目

  1. 讲一下自己的 rag 这一套流程的理解
  2. 在里面采取了哪些技术
  3. 对接大模型用的什么
  4. 文件拆分是怎么分割的
  5. 用户提交问题后的流程
  6. 中间过程纯手工编的吗?(我答的没用 langchain4j 或者 Spring ai)
  7. 如果有充足时间优化 会优化哪些点
  8. 怎么解决检索过程中的权重误差?
  9. 如何优化检索来提高回答准确性?
  10. 了解过 agent 和 mcp 吗?
  11. 可以把整个流程让大模型自动弄吗?
  12. 如果用 agent 代替,你会怎么设计呢?
  13. 多人会话历史的窗口怎么设计的?
  14. 考虑过怎么优化吗?(我提到可以压缩历史上下文然后拼接) 压缩如何实现呢?
  15. 大文件上传优化是一开始就这样考虑的吗?还是遇到了什么问题才这样设计的?
  16. 文件完整性怎么保证的? 项目上线了吗?

聊 mydb 项目 是自己做的吗?(go 改的) 最大收获是什么?

  1. 你提到了 mvcc,mysql 里面的 mvcc 实现细节讲一下?
  2. 什么隔离级别会导致这样的问题?
  3. 你是把数据库完整实现了吗?(简单实现)
  4. B+树的索引是怎么实现的?

拷打八股 tcp 建立和连接 阻塞控制怎么控制的?

  1. 选一个细致讲一下(我说了慢启动)
  2. tcp 和 udp 的区别 https 的建立过程
  3. 进程和线程的区别和联系
  4. 进程的调度策略
  5. 进程间的通信方式
  6. socket 编程用在什么时候(有点记不得了 刚刚不该提 socket 的)
  7. socket 最大优势是什么?
  8. 他是如何防止网络阻塞的?
  9. io 多路复用原理 select 和 epoll 区别 页面置换算法有哪些?
  10. lru 原理?(这个时候快一小时了,我还以为他会让我手写 lru,累了)
  11. 虚拟内存?
  12. 磁盘调度算法有哪些?
  13. c++里面栈快点还是堆快点(我就不该说本科学过 c++ 我记得我报的 java 岗) 分为哪些区?
  14. python 用过吗?和 java 区别在哪里?
  15. 常见的垃圾回收算法? 说一下 cms 和 g1 区别 cms 缺点
  16. 有接触过分布式系统吗?

二面面经

60min 拷打项目

  1. 派聪明 prompt 是如何构造的?
  2. 大文件上传优化是怎么做的?
  3. 解析文档用的是什么?
  4. chunk 是怎么切割的?
  5. 是否可以优化?
  6. 用的哪个大模型?

mydb

  1. mvcc 基本原理(直接吟唱)
  2. B+树和 B 树的区别

手撕 leetcode 621 (改了一下题目 第一问是原题,第二个求排列组合数没写出来,不过面试官说目前还没人写出来 我感觉再调半小时能写出来)

7.虾皮一面

一道生产者消费者的题 acm

派聪明 讲一下主要模块和功能

派聪明是一个企业级的 AI 知识库管理系统 。它的核心功能是对用户上传的私有文档(比如 Word、PDF、txt 等),进行语义解析和向量处理,然后存储到 ElasticSearch 中以供后续的关键词检索和语义检索。

它的主要模块和功能包括:

  1. 文档处理 :用户上传文档后,系统会像图书管理员一样,自动将文档内容拆分成一个个小的知识片段。
  2. 知识向量化 :接着,派聪明会利用豆包/阿里的向量模型为每个知识片段生成一个独特的“语义指纹”,并存入 Elasticsearch 中。
  3. 智能检索 :当用户提出问题时,系统会先将问题转换成“语义指纹”,然后在 ES 中寻找与问题意图最匹配的几个知识片段。
  4. 生成答案 :最后,派聪明会将用户的原始问题和找到的相关知识片段一起交给大型语言模型(比如 DeepSeek ),让这个“大脑”基于给定的上下文,生成一个精准、流畅、人性化的回答。

es 怎么存的

我们在 ElasticSearch 中新建了一个名 knowledge_base 的索引,它将为每一条数据存储两种关键信息。

其中,textContent 字段用于关键词搜索,vector 字段用于语义搜索。关键词会通过 ik 分词器直接存储在 textContent 字段中,而文本的 chunk 会通过 embedding 模型向量后存入 vector 字段。

kafka 是如何处理异构的

首先,Kafka 能处理异构系统的核心在于,它本身并不关心消息到底是什么内容。无论是 JSON、文本,还是其他任何格式,Kafka 的服务端都一视同仁,把它们当作一堆字节数组(byte[])来处理。

这种把数据格式的定义和解析工作,从 Kafka 服务端转移到客户端,也就是生产者和消费者身上。就是解耦的关键。

生产者在发送数据前,会用一个“序列化器”把程序中的数据对象“翻译”成字节数组。消费者在收到数据后,会用一个“反序列化器”把字节数组再“翻译”回自己能理解的数据对象。

比如说用户提了一个问题, ParseService 在处理后,会向 user_interactions 主题发送一条 JSON 格式的消息: {"userId": "123", "action": "ask_question", "timestamp": 1678886400, "details": "Kafka 是什么?"}。

有哪些生产者哪些消费者

从生产者角度来看,系统的核心生产者是 UploadController.java 中的文件上传控制器。当用户完成文件分片上传并触发合并操作时,系统会在 mergeFile 方法中通过 kafkaTemplate.executeInTransaction 以事务性方式发送 FileProcessingTask 消息到 file-processing-topic1 主题。

消费者方面, FileProcessingConsumer.java 承担着主要的消息处理职责。它监听 file-processing-topic1 主题,接收到 FileProcessingTask 后会执行文件解析、内容提取和向量化等复杂的 AI 处理流程。

消费者采用了智能的错误处理机制,当处理失败时会自动重试最多 4 次,如果仍然失败,消息会被自动路由到死信队列 file-processing-dlt 中,避免了单个问题文件阻塞整个处理流程。

向量文件如何存储在 es 里面?

prompt 是如何设计的?

首先,在构建 Prompt 的时候,我们把系统规则始终放在最前面,并用中文直接声明几件关键事情,比如:回复必须标注引用编号(例如来源#1),如果检索不到结果也必须礼貌告知“暂无相关信息”,这一点是通过配置明确约束模型输出行为的。

其次,我们在技术上对检索结果和用户问题进行了语义隔离,所有来自知识库的内容都会被包裹在一对特殊符号 > ... > 之间,这样能让大语言模型非常清楚哪些是“引用材料”,避免混淆生成逻辑。

针对引用本身,我们为每个知识片段分配了临时编号,比如 [1] 某某内容,然后在系统规则中硬性要求模型在回答时使用“来源#1”这样的格式进行标注。后续前端会把这些引用变成超链接,用户点一下就能跳到原文,非常有利于增强回答的可信度。

另外考虑到一些场景下,知识库确实可能没有匹配内容,为了兜底,我们会在构建 Prompt 时检测是否检索结果为空,如果是,就把 context 设置成“(本轮无检索结果)”,引导模型不要胡编,直接用自带知识简要作答,或者坦诚说“找不到”。

为了支持连续对话,我们把用户对话历史存在 Redis 中,但也做了长度控制,最多只保留最近 20 条。如果超过,就自动裁剪,这样可以防止上下文爆炸,保持性能和响应效率。

最后,整个 Prompt 逻辑,包括提示词、引导规则、分隔符、温度参数等等,都是配置在 application.yml 文件里的,可以随时调整规则或采样参数。

mysql 八股

mvcc 间隙锁

8.百度测开一面

百度测试开发工程师 一面

自我介绍。

拷打派聪明:

  1. ① 项目技术栈
  2. ② 项目搜索怎么实现的?
  3. ③ 项目在开发的过程中怎么实现文件内容上传。
  4. ④ 如果文件上传的内容有先后迭代顺序,比如婚姻法有前后两版,那么用户在提问时会返回什么?
  5. ⑤ 如果用户在表达主观的词,类似“我今天很郁闷”,项目会返回什么。(没答好,开始没听懂,后面面试官提示里面应该有个逻辑处理)

测试:

  1. ① 操作网络了解吗
  2. ② 如果给你一个网站,你发现这个网站它加载缓慢,那你可以有哪些测试的点?
  3. ③ 你平时用过哪些测试的工具?怎么用的? 数据库: 说一下索引相关的内容。 怎么判断索引失效。

手撕:

  1. ① 给你一个类似百度的页面,用 JAVA 实现你能想到所有测试点的测试样例(测试脚本)。(没撕出来)
  2. ② 去除重复字符串

反问 面试一共几轮 什么时候出面试结果 测试岗的测试内容一般是什么

9.百度测开二面

百度测开二面复活赛凉经-80 分钟快榨干了,一个八股没问,出来一个小时秒挂。

  1. 1.讲研发和测试的区别,问我更倾向哪个,为什么
  2. 2.拷打项目长达半小时,派聪明被拷打穿了,明显感觉面试官是 next level 的哈哈哈。

怎么测试本地知识库检索的准确性的,怎么做弱网测试,怎么模拟弱网的环境,有什么兜底的机制,大模型出现幻觉你怎么判断怎么测试,技术怎么选型的,向量检索用的什么中间件为什么选它。

我还记得的就这些,但应该不只是这些,其实这些问题我多少准备过,但面试官明显想要更自动化更标准化的答案,就不是靠人工去判断,这块下来要重点准备一下。

  1. 3.手搓一个单例模式的例子
  2. 4.给一段代码,看有什么错误,让你自己去写,你作为测开要考虑什么。(这个问题答的很拉胯,平时确实想不到这些)
  3. 5.手撕两个有序数组取第 k 大的值,撕出来了,但测试用例还是被问穿了哈哈哈。
  4. 6.了解 Linux 的 cp 命令么。让你自己去测试这个命令,你要设计哪些测试用例。

这题明显答的不好,面试官希望我有一套完整的方法论,不是自己慢慢地把一个个情况想出来。 总体来说这回压力给的挺大的哈哈哈,不过感觉启发很多。

10.慧科讯飞实习面经

今天做了慧科讯飞实习的面试,依然没有狠狠敲打项目,基本上都是八股

  1. 1.讲讲多态
  2. 2.为什么要把基本数据类型做成包装类
  3. 3.arraylist 和 linkedlist 区别
  4. 4.array 的扩容,linkedlist 转成 arraylist 怎么做(我胡说的,我说一个一个加,但应该有对应的方法但我没用过,实际上 toarray()就好了)
  5. 5.为什么重写 hashcode 的同时要重写 equals
  6. 6.string stringbuilder stringbuffer,(这个八股我又又又忘了,就说了个 string 不可变,其他两个可变,java 基础的八股得复习了)
  7. 7.RAG 的流程,检索的流程。
  8. 8.因为我魔改了一下项目,所以问我大模型的结构化输出怎么做的。模型的部署,用的什么模型。
  9. 9.mydb 的压力测试怎么做(蒙圈了,我说这是一个学习用的项目,参考大佬的 go 项目写的,人家写的 QPS 提升,但我自己没有测试,主打一个满嘴跑火车)
  10. 10.sql 的慢查询怎么排查,写了两个 sql 语句
  11. 11.问我 docker 用过吗
  12. 12.我说我研究生做深度学习的,就问我 python 的基础知识,那么果然没答上然后就不问了,开始介绍他们部门的业务和工作,说他们要转 python 开发,问我能接受吗。是个北京小公司的实习岗,我不知道要不要尝试去一下,因为目前投的中大厂的简历基本上初筛都挂了,应该是没有实习的原因吧,我想要不要搞一个实习经历。

哎,挺失落,又没有狠狠拷打项目。早上一看中大厂简历的流程全被终结了,双非硕果然路边一条。

11.菜鸟一二面

菜鸟一面——风控管理

  1. 1.自我介绍
  2. 2.实习相关
  3. 3.项目中,有没有涉及安全保证的地方
  4. 4.分布式 CAP 理论
  5. 5.一般分布式业务系统使用哪两个原则
  6. 6.介绍一下 rpc 框架
  7. 7.rpc 与 http 有什么区别?为什么有了 http 还要有 rpc?
  8. 8.http 协议的内部结构 9.调用 AI 模型返回的格式可能并不如人意,这个问题怎么解决?
  9. 10.说一下调用 LLM 的角色分类?使用哪种角色会更好?
  10. 11.就算使用 system 角色,返回的格式也不能保证 100%符合要求,怎么解决?
  11. 12.LLM 大模型返回答案时间长,怎么解决?
  12. 13.业务设计:前端传进来用户,一个用户可能对应多个角色,每个角色可能对应多个权限,后端最终需要返回给前端角色集和权限集。

考虑一下整体的业务流程怎么实现,用什么数据结构去存储用户与角色、权限之间的关系?用什么数据结构去跟前端交互呢?

14.追问:如果简化为 int 数组保存映射关系,如果承载的角色达到 50,超过了 32 位怎么办?

26 届秋招:菜鸟二面 Java 部门:风控

  1. 1.自我介绍与面试官介绍(他说他是风控主管…)
  2. 2.实习相关:提到的需求挨个问,麻了
  3. 3.问需求中有没有性能、系统链路优化之类的经历,或者你的工作内容涉及到系统功能、内部流程的一些改造或者优化
  4. 4.不问八股文,我们来说一些开放场景
  5. 5.某个平台的筛选或创建流程,偶发超时、系统宕机之类的情况,你说一下整体系统排查的思路或者逻辑
  6. 6.在之前的实习或项目经历中,有类似接口调优之类的经验吗
  7. 7.如果已经定位是 Dao 层之下的代码导致的慢查询问题,接下来怎么排查呢
  8. 8.比如就是数据库的数据量大,又该怎么优化行查询慢的问题呢
  9. 9.你说一下你这个 AI 问答平台,引用了哪些模型?说一下整体的流程,整体的业务场景是什么样的?deepseek 在这里承担的角色、责任是什么?
  10. 10.你觉得像大模型这种东西在实际的业务场景中,会出现什么问题呢?希望能够依赖 AI 解决什么问题呢?
  11. 11.反问:部门的主要业务、对我的建议

PS:这个面试官问的问题特别活络,而且每个问题都会给你纠正,说的也很多,人很好很真诚

12.字节客户端二面

字节客户端二面 这下是真拉

  1. 1.讲讲强引用和弱引用,分别有什么使用场景
  2. 2.垃圾回收算法了解吗
  3. 3.说说 g1 和 cms
  4. 4.说说分代回收
  5. 5.hashmap 的底层,红黑树会退化回链表吗,长度为什么是 8。
  6. 6.cas 了解吗,cas 在 java 中怎么实现,也没有用过
  7. 7.https 为什么是安全的
  8. 8.一个 url 显示到主页的过程
  9. 9.域名解析的过程
  10. 10.介绍一下项目
  11. 11.混合检索的准确率怎么算,有没有考虑过从业务上去优化准确率。
  12. 12.意图识别有没有兜底策略
  13. 13.为什么 websocket,怎么使用的

算法,1.队列实现栈,2.给一个数组,给一个数 k,如果这个数组有一个连续不小于二子数组只和是 k 的倍数那么这个数组是好数组。

哎,太拉稀了,猛攻算法!

13.得物一面(AI 技术面)

  1. 如何不用临时变量交换 a 和 b 的值
  2. 什么是双端队列?说明特性与使用场景
  3. String、StringBuilder、StringBuffer
  4. java 中,线程安全、线程不安全的容器有哪些?
  5. 数据库中,聚簇索引与非聚簇索引
  6. 说说对数据库锁的理解,包括锁的机制、种类等
  7. 说说项目中碰到困难的经历(提到了 ES,我就不该提…)
  8. 追问:ES 倒排索引实现原理、向量数据怎么检索的?
  9. 追问:KNN 算法在高维向量匹配时,会遇到维度灾难的问题。请你解释并解决。
  10. 追问:降维后信息丢失的问题怎么解决?什么情况下可以降维?PCA 的原理和使用场景,t-SNE 呢?
  11. 将学术知识运用到项目中的例子
  12. 追问:B+树实现的难点在哪里?如何解决的
  13. 在实际开发中,怎么解决团队协调问题的?如何主动寻求团队成员的反馈?
  14. 回想一个初始方案没有奏效的场景,如何调整并解决的?

14.未知公司

基本围绕着项目拷打,穿插问项目涉及的八股

paismart:

  1. 断点续传具体怎么做的
  2. es 在项目中的作用
  3. redis 在项目中的的作用
  4. redis 常见数据结构
  5. redis 与 es 存储数据的差异
  6. 缓存击穿、穿透、雪崩
  7. 为什么引入 kafka
  8. 项目最大的挑战,项目来源,是否上线

mydb:

  1. 说一下事务,开始、提交、回滚事务的命令
  2. 事务隔离级别
  3. MVCC
  4. 乐观锁、悲观锁
  5. mysql 实现乐观锁的思路
  6. 两阶段提交
  7. 主键和普通索引的组织结构
  8. 覆盖索引
  9. 为什么使用 b+树作为索引
  10. 如何排查慢 sql

纯八股:

  1. TCP 如何保证可靠性
  2. notify()和 notifyall()
  3. jvm 内存区域的划分
  4. 类初始化过程
  5. 双亲委派机制
  6. 垃圾回收算法
  7. synchronized 和 ReentrantLock

手撕:二维矩阵搜索

15.OPPO 线下一二三面

26 届秋招:OPPO 线下一二三面 岗位:后端工程师

业务一面:

  1. 自我介绍
  2. concurrentHashMap、CopyOnWrite 原理
  3. CAS 操作,带来哪些问题
  4. jvm 垃圾回收有哪些阶段、哪些阶段 STW、G1 回收器原理
  5. spring 自动装配原理、启动原理,要在启动阶段自定义逻辑该怎么做?
  6. redis 缓存穿透的解决方案?布隆过滤器为什么不支持删除?怎么样支持删除?
  7. aop 的底层原理?两种代理模式的区别?性能上呢?
  8. 说说实习期间觉得有技术难点的地方
  9. 介绍一下怎么使用 ES 和 embedding 实现检索的?ES 里面存的是什么?
  10. 看你用过 AI,说说你对现在 AI 发展的理解吧?能帮我们干什么?
  11. 算法:说一下 LRU 底层怎么实现的

业务二面:

  1. 自我介绍
  2. jvm 垃圾回收机制
  3. redis 主要用来干什么?业务场景?
  4. redis 为什么快?有了解过 redis 底层是怎么组织数据的吗,有关索引的?
  5. 项目里面为什么要用 redis、mq?出于什么考虑?你觉得为什么要有 mq 这样的中间件?
  6. 我看你用过 elasticsearch,主要用来干嘛的?里面存的什么数据?
  7. 本科竞赛:怎么进行排期的?做了什么努力?如果遇到意见冲突怎么解决?
  8. 你对现在的 AI 是怎么看待的?
  9. 实习期间接触过 rpc 吗?你觉得有了 http 为什么还要用 rpc?rpc 的原理呢?
  10. 反问:简单的业务介绍

HR 面:

  1. 自我介绍+三个关键词形容自己
  2. 对 oppo 的了解
  3. 目前面过哪些公司?你对这些公司排序的一个标准是什么?你更看重哪些因素?top2 是?
  4. 过往经历让你感觉最紧张最不知所措的经历?通过什么方式解决的?结果怎么样?
  5. 这个事情现在已经过去了,你觉得还有哪些可以优化的点?
  6. 如果 base 地不满意的话,接受调剂吗?
  7. 简单介绍一下家庭情况?家人或对象有限制你的 base 地吗?
  8. 反问:结果大概多久出?具体的部门和工作大概到什么时候可以得知?offer 签约会上会公布什么信息?

16.美团-业务研发平台-一面

一面面了一个小时左右,开始就是一段八股的拷打,然后问了一下实习,项目的话写了两个,面试官问派聪明还是问的比较多。

针对第五点那个问题想跟大家讨论一下,因为实际项目跑起来的时候确实会碰到这种问题,就是上下问题问的完全不同,后面的回答还是会响应之前回答从知识库中获取的一些跟当前问题不想关的内容。

派聪明 相关问题:

  1. (RAG)那个异步任务调度大概是咋做的
  2. 通过多线程也可以实现异步,比如说主线程返回,然后把任务交给多个子线程,为啥没用这个方法
  3. 为啥要实现双引擎索引呢
  4. 用 Redis 存储用户的上下文,这个大概咋做的
  5. 用户他可能前后两次回答的问题,完全不同,这个你怎么区分
  6. 你们是调用的什么模型,是在自己服务器搭建的还是调用的 API

17.百度一面

都围绕的简历提问

  1. 自我介绍
  2. 简单介绍一下平时做的项目还有参加的比赛实际提升的哪些能力

【派聪明】

  1. 混合检索当中向量化计算具体是怎么做的
  2. 用户的文档、向量化的数据存在哪里
  3. 关键词检索和向量检索的得分是怎么做归一化处理的(加权的比例是怎么考虑的 怎样让最终结果更贴合用户需求)
  4. 介绍一下 kafka 文档异步处理流水线
  5. 技术派中用的 RabbitMQ,这里用的 Kafka,技术选型上是怎么考虑的
  6. Kafka 处理的具体流程是什么 上传一个文档就发一个消息吗

【技术派】

  1. 详细介绍一下技术派
  2. 为什么要“先写 MySQL,再删 Redis”
  3. 用户活跃度排行榜,Redis 具体存的什么数据,直接在 Redis 中更新还是 MySQL 中更新
  4. Canal 订阅并解析 MySQL binlog 具体是用来做什么的
  5. 有没有考虑过 binlog 量大的问题 当前方案的性能瓶颈在哪些方面

【MYDB】

  1. 介绍一下 MYDB
  2. 一条语句在 MYDB 中执行的流程是怎样的
  3. B+树是如何设计的 数据在实现的 B+树的结构中是怎么存放的
  4. MVCC 原理机制 主要的优点

【MySQL】

  1. 平时遇到的 SQL 问题 怎么优化的
  2. 具体的优化思路
  3. 考虑索引优化时 有哪些性能比较高的索引

反问:

评价: 项目思路挺超前的 考虑到跟 AI 相结合

面的是商业研发部 业务和广告相关

复盘: 多练习。

面试过程中回答思路不够清晰 卡顿严重 对项目中的一些实现不够了解。理清简历上项目的技术实现的链路(对哪些数据用什么技术做了什么操作)

18.传音控股一面

  1. 先做一个自我介绍。
  2. 研究生期间主要有那些课程(专业人数),你找的软件之类的工作和你的专业相关性有多大(通信专业,为什么会选择走软件,以及龙旗询问的为什么纯软件,而不是硬件呢)
  3. 掌握集合框架,你简单介绍一下你常用的一个集合是什么?它的数据结构是什么?,查询速度快是怎么做到的?

c 语言接触过没?同样的道理,在 C 语言中也有数组,通过下标去查询元素,它快速的原因和计算机的某个原理是相关的,这个原理是什么呢?数组和链表相比的查询效率是高还是低呢?

我现在给你设计了一个链表,现在这个链表的一个节点存储的是一个 int 的数据,它的数据结构是什么呢?每一个数据可以作为一个元素,这个元素肯定是通过一个数据结构来进行封装的,数据结构是什么?包含了那些元素?比如说我现在有一个链表,有 10 个元素,我想删除第四个元素的逻辑是什么,原有的链表队首加一个元素呢?数组和链表的查找一个元素的时间复杂度是多少?数据结构中,有时间复杂度和空间复杂度,什么叫空间复杂度呢?

ArrayList 它可以动态扩容是和它的空间复杂度是有关的(如何最大化优化它的空间复杂度呢-换一句话说,源码里面的动态申请内存的策略是什么呢?有具体去了解过吗?)

在平常的使用中,如何避免这种频繁的扩容呢?会导致它们的效率不断地降低,因为你不断地扩容,就需要不断地进行申请,会导致内存碎片很多,这个有没有考虑过呢?

ArrayList 元素对象,对象类型调用它的 ADD 调用对象,加入这个对象是一个深拷贝还是浅拷贝。一个对象要支持的深拷贝需要注意那些方面?

  1. 面向对象编程,解释一下你是如何进行理解面向编程的(24 分时,开始面向对象)
  2. 说一下 java 里面的反射,有用过的吗?如何通过反射来实现你说的一对多呢?你在使用 java 的框架中,你知道的哪一个框架是用到了反射的呢? 5.单例方式是什么,思想是什么,应用的场景一般用在哪里?单例方式有几种实现方式
  3. 如何创建一个线程池呢?java 中的 jdk 框架一共是几种创建方式的呢?创建了一个线程池,如何中断当前的线程,去执行另一个线程呢?ThreadLocal 你用的多吗,只是了解还是,在项目中有用到的吗,为什么会用到?ThreadLocal 的作用是什么?CopyonWriteArrayList 这里有没有用到 ThreadLocal 呢?CopyonWriteArrayList 是线程安全的吗,为什么是线程安全的呢?
  4. 你如何理解并发编程,什么叫并发编程呢,在 java 中针对并发编程,我有那些控制机制,或者类似的并发容器?如何保证 ArrayList 这种数据的完整性?有几种锁?解释一下什么叫悲观锁?
  5. 计算机网络的七层网络结构说一下?
  6. 你这个 企业级智能问答系统,这个是企业级的应用还是研究生做的导师的项目呢,项目的初始学习来源在哪?系统架构设计是你独立完成的吗?发现你写的重点是文件的上传进行独立负责的,这个你们一开始使用的是什么技术方案呢,还是后来遇到了什么瓶颈,去进行了优化呢?你说的在 deepseek 上传大文件失败的原因仅仅是因为上传的文件过大,就拒绝了的吗?使用了 MinIO 使得可以上传大文件?
  7. 你现在在哪?这个岗位在重庆你知道的吗?
  8. 大的市场,也就有大的挑战,如果你来做这个岗位的话,你有什么想法能够让公司的产品有更大的竞争力。
  9. 现在手机以及很普及了,假如你去设计一个手机的一个价值点,你有什么想法
  10. 你觉得在手机上使用 ai 能够给用户带来更大的便利性?

反问 1:后续是在重庆工作还是? 反问 2:对于应届生的培养是什么样的?

19.招银网络二面+ hr 面

参加了招商银行宣讲会 贴一下二面面经

招银二面 自我介绍

  1. 让我具体说一下我参与比较深的项目,并问了些你认为这个项目要怎么优化的问题
  2. 问了 rag 项目一些问题
  3. 把大文档切割会有什么样的问题
  4. 如果知识库太大了,匹配效率慢了,该如何解决

无八股手撕

20.天翼云 一面

30min

项目拷打:

  1. 讲一下派聪明项目的难点(我提了文件上传优化)
  2. Redis 部署
  3. kafka 的生产者消费者分别是什么?
  4. 如何运作的?
  5. 口头表达一下链表相交的解法
  6. 八股 LRU 用在操作系统里面哪个地方
  7. tcp 如何保证可靠性?
  8. 具体说一下拥塞控制
  9. 快重传具体实现
  10. Redis 三大缓存问题
  11. 操作系统的启动过程
  12. Linux 如何修改成自启动(不记得了,就说的改 etc 下的配置文件)
  13. 进程间通信方式
  14. 口述如何让 cpu 和节点资源更加平衡(答的不好,面试官想要算法,我答的宏观层面)
  15. 反问: 简历如何优化(面试官说我有个字打错了,我看了下确实,很尴尬)

部门内容 一共几轮面试 两个面试官交叉面的,问题都比较简单

21.顺丰科技二面

26 届秋招:顺丰科技二面

  1. 自我介绍
  2. mysql 慢查询的解决思路?如果索引没问题,是多表 join 引起的问题,有什么解决思路?除了分库分表呢?
  3. Kafka 怎么保证消息不丢失?消费者的手动 ack 消息是发给谁的?
  4. 队列怎么确认消费者的消息?队列挂了怎么办?开了持久化机制之后,吞吐量上不去怎么办?
  5. java 中怎么创建线程池?线程池参数、阻塞队列有哪些?利用线程池执行任务的流程是怎么样的?默认的拒绝策略是什么?核心线程不会被回收,你觉得底层的机制是怎么保证的?
  6. 你的项目中,向量数据库是怎么找到相似度比较高的 topK 个向量的?怎么判断两个向量之间的相似度?
  7. 混合检索有没有做分档分片?具体的分片方法是?目前的方案有什么问题?你觉得有没有更好的方案?
  8. 手撕:爬楼梯(动态规划秒了嘻嘻)

22.美团测开一面

美团测开一面-美团酒店机票页面核心测试组

  1. 派聪明项目难点
  2. 怎么测试检索准确率
  3. 自己的项目是开源的吗,简历上就是自己实现的部分
  4. 一个页面中有几个列表,中间插入一个广告,页面不显示会怎么去测试
  5. 问了一些零碎八股 最后反问面试官,说的应该确定方向再去深入技术,他们组要求得会测试,和基础比较扎实 哎感觉浪费机会了,再沉淀沉淀

23.美的线下终面

美的线下终面完成,开泡(hr+部门主管面)

  1. 问毕业论文题目,具体怎么实现的
  2. 问派聪明 IK 分词器为什么用这个,为什么不用 xxx(没听过)
  3. 管理的什么样的知识库,我回答是 pdfword 等文本数据。面试官应该是说的什么部门的,比如技术部门还是 hr 部门。我说没有细分部门,因为做了鉴权
  4. 为什么用的这一套技术栈感觉很奇怪 回答的是是面向企业内部的知识库,因为这个项目是分了三期完成,首先是知识库搭建,后期还要集成 mcp 最后还要加智能体,所以用的自研方便集成。面试官好像也不太满意,说当时你们对接的人懂这个 rag 吗(对不起二哥哈哈哈哈哈我包的实习)
  5. 分块怎么分的
  6. Redis 存的是什么,用的什么数据结构 一开始答得 string(脑壳已经有点麻了)反应过来发现不对。用的 hash 存用户 id 会话 uuid,uuid 和会话记录。
  7. 追问,那会话记录是生成一句存一句吗 这个不知道,扯了一下 value 的形式,然后答是的 差不多就这些

Hr 提问

  1. mbti 是什么?
  2. 你觉得自己可以改善的缺点是什么

反问评价一下,主管说感觉 rag 这个项目了解的不够深入 Hr 说成都的岗位很少很少,大部分在佛山 有点寄

24.成都后端拓尔思一面

面试官人很好,会引导,一点都不 push

  1. 只有两个鸡蛋,100 层楼,至少多少次测出不会碎的最高层(答的二分,然后让考虑一个鸡蛋的情况,答出来了,一步一步给我讲怎么做到两个鸡蛋的情况)
  2. 问简历,觉得哪个项目最难做,为什么(给我建议,体验一下好的 ai 工具)
  3. rag 的存库和检索怎么做的:(润的派聪明)chunk+embedding+elasticsearch,knn+关键词,作为 ref 构成 promot 给 LLM
  4. 大模型怎么部署的: 最开始是 Ollama+Deepseek 本地运行,后来作为学习,使用 Langchain4J 调用通义千问 api
  5. 对 ai 看法
  6. 个人通勤时间,籍贯等信息
  7. 是否想往全栈发展
  8. 实习情况 面试官解答部分: 他怎么用的 ai,建议我加强系统性学习 ai,并说明公司用 ai 的场景 简历写的很好,但是希望我尽量减少手工编码,多使用 ai 工具

反问:

公司业务场景,后端是否注重代码复用

如果我要发展全栈,是否支持前一周学习 vue:没关系,有前端业务人员,有困难可以问他

如果通过后是否会有技术面:等面试官的主管确定,不需要应该就他一面

最后:之后回复您

不知道会不会凉 😅

25.美团一二面

美团一面:

  1. 讲下项目的背景;
  2. 介绍下实习;
  3. 介绍下 Java 的 HashMap;
  4. 集合中哪些是线程安全的,哪些是线程不安全的;
  5. Java 集合中的快速失败机制有了解吗;
  6. Java 的垃圾回收器怎么判断一个对象是可回收的呢;
  7. Java 的 static 关键字主要用在哪些场景;
  8. 可以通过 Spring 注入的方式给静态变量赋值吗;
  9. 介绍下 Spring 的 AOP,有哪些实现方式;
  10. 通常用 Redis 做缓存,为什么不直接用 Map;
  11. 简单讲一讲 MySQL 索引原理;
  12. 什么情况下会出现索引失效。

美团二面:

  1. 拷打实习;
  2. AI 助手这个项目解决了什么问题,怎么拆解问题,选择技术方案的;
  3. 如果检索出来的结果都没有权限怎么办;
  4. 如何提高向量检索的召回率;
  5. 假如评测之后发现召回率不符合预期,或者说某些 case 应该召回,但实际没有召回或者排序比较靠后,有哪些办法可以优化;
  6. 在平时开发的过程中,哪些地方会用到大模型;
  7. 使用过类似于 cursor 的这些工具吗,在这个过程中有什么心得,或者说遇到了些什么问题,怎么解决;
  8. 怎么优化 SQL 性能;
  9. 索引失效的 case 有哪些;
  10. 说一下 MySQL 索引的数据结构;
  11. 讲一下事务的 ACID;
  12. 有过 JVM 调优或者解决 OOM 的经历吗;
  13. 说一下 JVM 的内存结构,以及垃圾回收的大概过程;
  14. 如果说需要并发操作集合,有什么办法去避免冲突的问题;
  15. ConcurrentHashMap 怎么保证线程安全的;
  16. 缓存的技术选型有哪些;
  17. Redis 性能比较好,得益于哪些设计;
  18. Redis 数据结构有什么特殊的实现;
  19. Spring 有哪些机制来规避循环依赖问题,能完全解决吗;
  20. 工作或者项目中有哪些环节可以通过 AI 提效。

26.阿里健康一面

阿里健康一面:

  1. 拷打实习;
  2. 有一个场景,有一个大文件 10GB,每个分片为 5MB,有 1000 个线程并发执行分片上传,怎么设计;
  3. 文件上传到 99%,网络断开了,怎么快速恢复;
  4. 大量的人上传同一个文件,怎么保证存储不浪费;
  5. 消息队列可能会有各种问题,怎么保障这个文档最终一定会被处理完成的;
  6. 这个过程如果要配置一些预警,你觉得应该配置哪几个重点的指标;
  7. 描述下整个用户发起请求查询到最后返回结果的过程;
  8. 大模型应用开发跟传统的应用开发,有哪些需要额外注意的点,有哪些不同;
  9. 大模型在输出的过程中,比如你让他按照某个格式输出,他并不一定能百分百遵循,除了 prompt 优化,还有什么其他的方式让他能够以接受的格式输出。

27.三七互娱一面(平台开发)

拷打实习(10min)

  1. Rocketmq 消息传递的顺序性
  2. 顺序消费的这个过程当中消费者组和 topic 怎么选择
  3. 说一下策略模式的原理
  4. spring 的框架源码中各个组件是否有哪里是用到策略模式的。

拷打 rag 项目(15min)

  1. 项目中文档是如何进行切分的
  2. Prompt 是怎么设计的
  3. top-k 是 20 条消息的话,是假如前 20 条(top-20)返回的结果里都没有命中那个最关键的条款,而这个关键信息恰好排在第 21 位,这种情况怎么解决
  4. 在做检索的时候,有什么提升方法提升它的检索质量
  5. 为什么选择用 JWT 做鉴权?
  6. JWT 是无状态的,那是不是只要有人拿到了这个 token,不管是谁,都可以拿着它去访问接口?
  7. 账号被禁用了,但 token 没过期怎么解决

八股(5min)

  1. Java 中的锁有哪些
  2. 在读多写少的场景下如果发生了写操作,应该用什么锁
  3. ReentrantReadWriteLock 的核心原理是什么

反问

技术派上阅读体验比知识星球更好: https://paicoding.com/column/10/25 光格式整理了一个小时,细糠,大家慢慢吃,基本上能把派聪明的所有题目都覆盖到了,面试再也不愁。兄弟姐妹们,派聪明 RAG 这个项目真值了呀。

1.快手快 star

  1. 描述一下上传文件,提问到显示答案整个数据流以及涉及到的模块/技术栈,
  2. 怎么 chunk 的,为什么这么做?
  3. 用的什么模型,有对比过吗
  4. 检索结果不符合预期怎么办
  5. ES 里怎么存的
  6. 分片上传是怎么做的?断点续传?你这个场景有意义吗

2.小红书一面

AI & RAG 相关

  1. RAG 怎么解决 LLM 上下文窗口有限的问题?
  2. RAG 里的“重要性重排序”是怎么判断哪个内容更“重要”的?
  3. 流式对话支持多轮吗?怎么实现的?
  4. 提示词做了哪些优化?如果多轮对话关联性不强,怎么抓住新问题的重点?
  5. OpenAI 协议里,上下文的角色有哪几种?
  6. system, user, assistant 这几个角色在使用上有什么区别?

Java 基础 & 并发

  1. 讲讲 Java 不同更新版本的区别,特别是关键版本。
  2. 为什么 Spring Boot 3.x 要用 Java 17+的版本?项目里用了哪些新特性?
  3. Lambda 表达式和 Stream API,跟传统的 for 循环比,优缺点是什么?
  4. parallelStream()为什么性能好?底层是什么实现的?
  5. 如果不用 parallelStream,用传统 for 循环自己写并发提交任务,代码大概分几块?
  6. 都说 Java 线程“重”,Go 协程“轻”,这个“重”具体体现在哪?
  7. 为什么 Java 线程实际只用很少的栈,但 JVM 却要给它分配那么大的栈空间?
  8. 协程到底是个什么东西?
  9. Java 里写 for 循环有几种方式(比如用索引 i,用迭代器),它们有什么区别?

算法手撕

  1. 实现一个函数,找出字符串里所有长度大于 1 的子回文串。

3.某对标亚信公司一面

  1. 面了一家听说对标亚信的公司,面试官口头和我说过了,下一轮 boss 面让我瞎聊就行
  2. java 基础和集合查缺补漏面经:
  3. embedding 用什么模型?
  4. 混合检索?怎么评估准确性?
  5. 大模型的选择
  6. 上下文管理?
  7. redis 的击穿, 雪崩,穿透
  8. AOP
  9. MySQL binlog 监听通过主从复制原理
  10. ThreadLocal
  11. 消息队列,消息如何不丢失?

要我现场跑跑派聪明,没跑起来。。。很悲催,我没改前端也不怎么熟悉流程。

4.未知公司

面经:

  1. 1、介绍项目从数据上传到最后存入数据库的流程、RAG 流程
  2. 2、切块的步骤、如何评价优化前后的 RAG 的好坏
  3. 3、针对用户不同的提问:提问语句长短不同,分别怎么检索?
  4. 4、向量化的数据有做处理吗?

5.腾讯二面

  1. 1.派聪明技术选型,如为什么用 minio 做文件存储、选择 es 等
  2. 2.rag 的准确率如何优化
  3. 3.语块如何分片
  4. 4.es 相关
  5. 5.大文件也可以断点续传为什么要分片?
  6. 6.从用户体验上来说,一个文档也没有很大,分片上传的提升并不大,这里如何考虑的?

6.合合信息一二面

一面面经

拷打项目

  1. 讲一下自己的 rag 这一套流程的理解
  2. 在里面采取了哪些技术
  3. 对接大模型用的什么
  4. 文件拆分是怎么分割的
  5. 用户提交问题后的流程
  6. 中间过程纯手工编的吗?(我答的没用 langchain4j 或者 Spring ai)
  7. 如果有充足时间优化 会优化哪些点
  8. 怎么解决检索过程中的权重误差?
  9. 如何优化检索来提高回答准确性?
  10. 了解过 agent 和 mcp 吗?
  11. 可以把整个流程让大模型自动弄吗?
  12. 如果用 agent 代替,你会怎么设计呢?
  13. 多人会话历史的窗口怎么设计的?
  14. 考虑过怎么优化吗?(我提到可以压缩历史上下文然后拼接) 压缩如何实现呢?
  15. 大文件上传优化是一开始就这样考虑的吗?还是遇到了什么问题才这样设计的?
  16. 文件完整性怎么保证的? 项目上线了吗?

聊 mydb 项目 是自己做的吗?(go 改的) 最大收获是什么?

  1. 你提到了 mvcc,mysql 里面的 mvcc 实现细节讲一下?
  2. 什么隔离级别会导致这样的问题?
  3. 你是把数据库完整实现了吗?(简单实现)
  4. B+树的索引是怎么实现的?

拷打八股 tcp 建立和连接 阻塞控制怎么控制的?

  1. 选一个细致讲一下(我说了慢启动)
  2. tcp 和 udp 的区别 https 的建立过程
  3. 进程和线程的区别和联系
  4. 进程的调度策略
  5. 进程间的通信方式
  6. socket 编程用在什么时候(有点记不得了 刚刚不该提 socket 的)
  7. socket 最大优势是什么?
  8. 他是如何防止网络阻塞的?
  9. io 多路复用原理 select 和 epoll 区别 页面置换算法有哪些?
  10. lru 原理?(这个时候快一小时了,我还以为他会让我手写 lru,累了)
  11. 虚拟内存?
  12. 磁盘调度算法有哪些?
  13. c++里面栈快点还是堆快点(我就不该说本科学过 c++ 我记得我报的 java 岗) 分为哪些区?
  14. python 用过吗?和 java 区别在哪里?
  15. 常见的垃圾回收算法? 说一下 cms 和 g1 区别 cms 缺点
  16. 有接触过分布式系统吗?

二面面经

60min 拷打项目

  1. 派聪明 prompt 是如何构造的?
  2. 大文件上传优化是怎么做的?
  3. 解析文档用的是什么?
  4. chunk 是怎么切割的?
  5. 是否可以优化?
  6. 用的哪个大模型?

mydb

  1. mvcc 基本原理(直接吟唱)
  2. B+树和 B 树的区别

手撕 leetcode 621 (改了一下题目 第一问是原题,第二个求排列组合数没写出来,不过面试官说目前还没人写出来 我感觉再调半小时能写出来)

7.虾皮一面

一道生产者消费者的题 acm

派聪明 讲一下主要模块和功能

派聪明是一个企业级的 AI 知识库管理系统 。它的核心功能是对用户上传的私有文档(比如 Word、PDF、txt 等),进行语义解析和向量处理,然后存储到 ElasticSearch 中以供后续的关键词检索和语义检索。

它的主要模块和功能包括:

  1. 文档处理 :用户上传文档后,系统会像图书管理员一样,自动将文档内容拆分成一个个小的知识片段。
  2. 知识向量化 :接着,派聪明会利用豆包/阿里的向量模型为每个知识片段生成一个独特的“语义指纹”,并存入 Elasticsearch 中。
  3. 智能检索 :当用户提出问题时,系统会先将问题转换成“语义指纹”,然后在 ES 中寻找与问题意图最匹配的几个知识片段。
  4. 生成答案 :最后,派聪明会将用户的原始问题和找到的相关知识片段一起交给大型语言模型(比如 DeepSeek ),让这个“大脑”基于给定的上下文,生成一个精准、流畅、人性化的回答。

es 怎么存的

我们在 ElasticSearch 中新建了一个名 knowledge_base 的索引,它将为每一条数据存储两种关键信息。

其中,textContent 字段用于关键词搜索,vector 字段用于语义搜索。关键词会通过 ik 分词器直接存储在 textContent 字段中,而文本的 chunk 会通过 embedding 模型向量后存入 vector 字段。

kafka 是如何处理异构的

首先,Kafka 能处理异构系统的核心在于,它本身并不关心消息到底是什么内容。无论是 JSON、文本,还是其他任何格式,Kafka 的服务端都一视同仁,把它们当作一堆字节数组(byte[])来处理。

这种把数据格式的定义和解析工作,从 Kafka 服务端转移到客户端,也就是生产者和消费者身上。就是解耦的关键。

生产者在发送数据前,会用一个“序列化器”把程序中的数据对象“翻译”成字节数组。消费者在收到数据后,会用一个“反序列化器”把字节数组再“翻译”回自己能理解的数据对象。

比如说用户提了一个问题, ParseService 在处理后,会向 user_interactions 主题发送一条 JSON 格式的消息: {"userId": "123", "action": "ask_question", "timestamp": 1678886400, "details": "Kafka 是什么?"}。

有哪些生产者哪些消费者

从生产者角度来看,系统的核心生产者是 UploadController.java 中的文件上传控制器。当用户完成文件分片上传并触发合并操作时,系统会在 mergeFile 方法中通过 kafkaTemplate.executeInTransaction 以事务性方式发送 FileProcessingTask 消息到 file-processing-topic1 主题。

消费者方面, FileProcessingConsumer.java 承担着主要的消息处理职责。它监听 file-processing-topic1 主题,接收到 FileProcessingTask 后会执行文件解析、内容提取和向量化等复杂的 AI 处理流程。

消费者采用了智能的错误处理机制,当处理失败时会自动重试最多 4 次,如果仍然失败,消息会被自动路由到死信队列 file-processing-dlt 中,避免了单个问题文件阻塞整个处理流程。

向量文件如何存储在 es 里面?

prompt 是如何设计的?

首先,在构建 Prompt 的时候,我们把系统规则始终放在最前面,并用中文直接声明几件关键事情,比如:回复必须标注引用编号(例如来源#1),如果检索不到结果也必须礼貌告知“暂无相关信息”,这一点是通过配置明确约束模型输出行为的。

其次,我们在技术上对检索结果和用户问题进行了语义隔离,所有来自知识库的内容都会被包裹在一对特殊符号 > ... > 之间,这样能让大语言模型非常清楚哪些是“引用材料”,避免混淆生成逻辑。

针对引用本身,我们为每个知识片段分配了临时编号,比如 [1] 某某内容,然后在系统规则中硬性要求模型在回答时使用“来源#1”这样的格式进行标注。后续前端会把这些引用变成超链接,用户点一下就能跳到原文,非常有利于增强回答的可信度。

另外考虑到一些场景下,知识库确实可能没有匹配内容,为了兜底,我们会在构建 Prompt 时检测是否检索结果为空,如果是,就把 context 设置成“(本轮无检索结果)”,引导模型不要胡编,直接用自带知识简要作答,或者坦诚说“找不到”。

为了支持连续对话,我们把用户对话历史存在 Redis 中,但也做了长度控制,最多只保留最近 20 条。如果超过,就自动裁剪,这样可以防止上下文爆炸,保持性能和响应效率。

最后,整个 Prompt 逻辑,包括提示词、引导规则、分隔符、温度参数等等,都是配置在 application.yml 文件里的,可以随时调整规则或采样参数。

mysql 八股

mvcc 间隙锁

8.百度测开一面

百度测试开发工程师 一面

自我介绍。

拷打派聪明:

  1. ① 项目技术栈
  2. ② 项目搜索怎么实现的?
  3. ③ 项目在开发的过程中怎么实现文件内容上传。
  4. ④ 如果文件上传的内容有先后迭代顺序,比如婚姻法有前后两版,那么用户在提问时会返回什么?
  5. ⑤ 如果用户在表达主观的词,类似“我今天很郁闷”,项目会返回什么。(没答好,开始没听懂,后面面试官提示里面应该有个逻辑处理)

测试:

  1. ① 操作网络了解吗
  2. ② 如果给你一个网站,你发现这个网站它加载缓慢,那你可以有哪些测试的点?
  3. ③ 你平时用过哪些测试的工具?怎么用的? 数据库: 说一下索引相关的内容。 怎么判断索引失效。

手撕:

  1. ① 给你一个类似百度的页面,用 JAVA 实现你能想到所有测试点的测试样例(测试脚本)。(没撕出来)
  2. ② 去除重复字符串

反问 面试一共几轮 什么时候出面试结果 测试岗的测试内容一般是什么

9.百度测开二面

百度测开二面复活赛凉经-80 分钟快榨干了,一个八股没问,出来一个小时秒挂。

  1. 1.讲研发和测试的区别,问我更倾向哪个,为什么
  2. 2.拷打项目长达半小时,派聪明被拷打穿了,明显感觉面试官是 next level 的哈哈哈。

怎么测试本地知识库检索的准确性的,怎么做弱网测试,怎么模拟弱网的环境,有什么兜底的机制,大模型出现幻觉你怎么判断怎么测试,技术怎么选型的,向量检索用的什么中间件为什么选它。

我还记得的就这些,但应该不只是这些,其实这些问题我多少准备过,但面试官明显想要更自动化更标准化的答案,就不是靠人工去判断,这块下来要重点准备一下。

  1. 3.手搓一个单例模式的例子
  2. 4.给一段代码,看有什么错误,让你自己去写,你作为测开要考虑什么。(这个问题答的很拉胯,平时确实想不到这些)
  3. 5.手撕两个有序数组取第 k 大的值,撕出来了,但测试用例还是被问穿了哈哈哈。
  4. 6.了解 Linux 的 cp 命令么。让你自己去测试这个命令,你要设计哪些测试用例。

这题明显答的不好,面试官希望我有一套完整的方法论,不是自己慢慢地把一个个情况想出来。 总体来说这回压力给的挺大的哈哈哈,不过感觉启发很多。

10.慧科讯飞实习面经

今天做了慧科讯飞实习的面试,依然没有狠狠敲打项目,基本上都是八股

  1. 1.讲讲多态
  2. 2.为什么要把基本数据类型做成包装类
  3. 3.arraylist 和 linkedlist 区别
  4. 4.array 的扩容,linkedlist 转成 arraylist 怎么做(我胡说的,我说一个一个加,但应该有对应的方法但我没用过,实际上 toarray()就好了)
  5. 5.为什么重写 hashcode 的同时要重写 equals
  6. 6.string stringbuilder stringbuffer,(这个八股我又又又忘了,就说了个 string 不可变,其他两个可变,java 基础的八股得复习了)
  7. 7.RAG 的流程,检索的流程。
  8. 8.因为我魔改了一下项目,所以问我大模型的结构化输出怎么做的。模型的部署,用的什么模型。
  9. 9.mydb 的压力测试怎么做(蒙圈了,我说这是一个学习用的项目,参考大佬的 go 项目写的,人家写的 QPS 提升,但我自己没有测试,主打一个满嘴跑火车)
  10. 10.sql 的慢查询怎么排查,写了两个 sql 语句
  11. 11.问我 docker 用过吗
  12. 12.我说我研究生做深度学习的,就问我 python 的基础知识,那么果然没答上然后就不问了,开始介绍他们部门的业务和工作,说他们要转 python 开发,问我能接受吗。是个北京小公司的实习岗,我不知道要不要尝试去一下,因为目前投的中大厂的简历基本上初筛都挂了,应该是没有实习的原因吧,我想要不要搞一个实习经历。

哎,挺失落,又没有狠狠拷打项目。早上一看中大厂简历的流程全被终结了,双非硕果然路边一条。

11.菜鸟一二面

菜鸟一面——风控管理

  1. 1.自我介绍
  2. 2.实习相关
  3. 3.项目中,有没有涉及安全保证的地方
  4. 4.分布式 CAP 理论
  5. 5.一般分布式业务系统使用哪两个原则
  6. 6.介绍一下 rpc 框架
  7. 7.rpc 与 http 有什么区别?为什么有了 http 还要有 rpc?
  8. 8.http 协议的内部结构 9.调用 AI 模型返回的格式可能并不如人意,这个问题怎么解决?
  9. 10.说一下调用 LLM 的角色分类?使用哪种角色会更好?
  10. 11.就算使用 system 角色,返回的格式也不能保证 100%符合要求,怎么解决?
  11. 12.LLM 大模型返回答案时间长,怎么解决?
  12. 13.业务设计:前端传进来用户,一个用户可能对应多个角色,每个角色可能对应多个权限,后端最终需要返回给前端角色集和权限集。

考虑一下整体的业务流程怎么实现,用什么数据结构去存储用户与角色、权限之间的关系?用什么数据结构去跟前端交互呢?

14.追问:如果简化为 int 数组保存映射关系,如果承载的角色达到 50,超过了 32 位怎么办?

26 届秋招:菜鸟二面 Java 部门:风控

  1. 1.自我介绍与面试官介绍(他说他是风控主管…)
  2. 2.实习相关:提到的需求挨个问,麻了
  3. 3.问需求中有没有性能、系统链路优化之类的经历,或者你的工作内容涉及到系统功能、内部流程的一些改造或者优化
  4. 4.不问八股文,我们来说一些开放场景
  5. 5.某个平台的筛选或创建流程,偶发超时、系统宕机之类的情况,你说一下整体系统排查的思路或者逻辑
  6. 6.在之前的实习或项目经历中,有类似接口调优之类的经验吗
  7. 7.如果已经定位是 Dao 层之下的代码导致的慢查询问题,接下来怎么排查呢
  8. 8.比如就是数据库的数据量大,又该怎么优化行查询慢的问题呢
  9. 9.你说一下你这个 AI 问答平台,引用了哪些模型?说一下整体的流程,整体的业务场景是什么样的?deepseek 在这里承担的角色、责任是什么?
  10. 10.你觉得像大模型这种东西在实际的业务场景中,会出现什么问题呢?希望能够依赖 AI 解决什么问题呢?
  11. 11.反问:部门的主要业务、对我的建议

PS:这个面试官问的问题特别活络,而且每个问题都会给你纠正,说的也很多,人很好很真诚

12.字节客户端二面

字节客户端二面 这下是真拉

  1. 1.讲讲强引用和弱引用,分别有什么使用场景
  2. 2.垃圾回收算法了解吗
  3. 3.说说 g1 和 cms
  4. 4.说说分代回收
  5. 5.hashmap 的底层,红黑树会退化回链表吗,长度为什么是 8。
  6. 6.cas 了解吗,cas 在 java 中怎么实现,也没有用过
  7. 7.https 为什么是安全的
  8. 8.一个 url 显示到主页的过程
  9. 9.域名解析的过程
  10. 10.介绍一下项目
  11. 11.混合检索的准确率怎么算,有没有考虑过从业务上去优化准确率。
  12. 12.意图识别有没有兜底策略
  13. 13.为什么 websocket,怎么使用的

算法,1.队列实现栈,2.给一个数组,给一个数 k,如果这个数组有一个连续不小于二子数组只和是 k 的倍数那么这个数组是好数组。

哎,太拉稀了,猛攻算法!

13.得物一面(AI 技术面)

  1. 如何不用临时变量交换 a 和 b 的值
  2. 什么是双端队列?说明特性与使用场景
  3. String、StringBuilder、StringBuffer
  4. java 中,线程安全、线程不安全的容器有哪些?
  5. 数据库中,聚簇索引与非聚簇索引
  6. 说说对数据库锁的理解,包括锁的机制、种类等
  7. 说说项目中碰到困难的经历(提到了 ES,我就不该提…)
  8. 追问:ES 倒排索引实现原理、向量数据怎么检索的?
  9. 追问:KNN 算法在高维向量匹配时,会遇到维度灾难的问题。请你解释并解决。
  10. 追问:降维后信息丢失的问题怎么解决?什么情况下可以降维?PCA 的原理和使用场景,t-SNE 呢?
  11. 将学术知识运用到项目中的例子
  12. 追问:B+树实现的难点在哪里?如何解决的
  13. 在实际开发中,怎么解决团队协调问题的?如何主动寻求团队成员的反馈?
  14. 回想一个初始方案没有奏效的场景,如何调整并解决的?

14.未知公司

基本围绕着项目拷打,穿插问项目涉及的八股

paismart:

  1. 断点续传具体怎么做的
  2. es 在项目中的作用
  3. redis 在项目中的的作用
  4. redis 常见数据结构
  5. redis 与 es 存储数据的差异
  6. 缓存击穿、穿透、雪崩
  7. 为什么引入 kafka
  8. 项目最大的挑战,项目来源,是否上线

mydb:

  1. 说一下事务,开始、提交、回滚事务的命令
  2. 事务隔离级别
  3. MVCC
  4. 乐观锁、悲观锁
  5. mysql 实现乐观锁的思路
  6. 两阶段提交
  7. 主键和普通索引的组织结构
  8. 覆盖索引
  9. 为什么使用 b+树作为索引
  10. 如何排查慢 sql

纯八股:

  1. TCP 如何保证可靠性
  2. notify()和 notifyall()
  3. jvm 内存区域的划分
  4. 类初始化过程
  5. 双亲委派机制
  6. 垃圾回收算法
  7. synchronized 和 ReentrantLock

手撕:二维矩阵搜索

15.OPPO 线下一二三面

26 届秋招:OPPO 线下一二三面 岗位:后端工程师

业务一面:

  1. 自我介绍
  2. concurrentHashMap、CopyOnWrite 原理
  3. CAS 操作,带来哪些问题
  4. jvm 垃圾回收有哪些阶段、哪些阶段 STW、G1 回收器原理
  5. spring 自动装配原理、启动原理,要在启动阶段自定义逻辑该怎么做?
  6. redis 缓存穿透的解决方案?布隆过滤器为什么不支持删除?怎么样支持删除?
  7. aop 的底层原理?两种代理模式的区别?性能上呢?
  8. 说说实习期间觉得有技术难点的地方
  9. 介绍一下怎么使用 ES 和 embedding 实现检索的?ES 里面存的是什么?
  10. 看你用过 AI,说说你对现在 AI 发展的理解吧?能帮我们干什么?
  11. 算法:说一下 LRU 底层怎么实现的

业务二面:

  1. 自我介绍
  2. jvm 垃圾回收机制
  3. redis 主要用来干什么?业务场景?
  4. redis 为什么快?有了解过 redis 底层是怎么组织数据的吗,有关索引的?
  5. 项目里面为什么要用 redis、mq?出于什么考虑?你觉得为什么要有 mq 这样的中间件?
  6. 我看你用过 elasticsearch,主要用来干嘛的?里面存的什么数据?
  7. 本科竞赛:怎么进行排期的?做了什么努力?如果遇到意见冲突怎么解决?
  8. 你对现在的 AI 是怎么看待的?
  9. 实习期间接触过 rpc 吗?你觉得有了 http 为什么还要用 rpc?rpc 的原理呢?
  10. 反问:简单的业务介绍

HR 面:

  1. 自我介绍+三个关键词形容自己
  2. 对 oppo 的了解
  3. 目前面过哪些公司?你对这些公司排序的一个标准是什么?你更看重哪些因素?top2 是?
  4. 过往经历让你感觉最紧张最不知所措的经历?通过什么方式解决的?结果怎么样?
  5. 这个事情现在已经过去了,你觉得还有哪些可以优化的点?
  6. 如果 base 地不满意的话,接受调剂吗?
  7. 简单介绍一下家庭情况?家人或对象有限制你的 base 地吗?
  8. 反问:结果大概多久出?具体的部门和工作大概到什么时候可以得知?offer 签约会上会公布什么信息?

16.美团-业务研发平台-一面

一面面了一个小时左右,开始就是一段八股的拷打,然后问了一下实习,项目的话写了两个,面试官问派聪明还是问的比较多。

针对第五点那个问题想跟大家讨论一下,因为实际项目跑起来的时候确实会碰到这种问题,就是上下问题问的完全不同,后面的回答还是会响应之前回答从知识库中获取的一些跟当前问题不想关的内容。

派聪明 相关问题:

  1. (RAG)那个异步任务调度大概是咋做的
  2. 通过多线程也可以实现异步,比如说主线程返回,然后把任务交给多个子线程,为啥没用这个方法
  3. 为啥要实现双引擎索引呢
  4. 用 Redis 存储用户的上下文,这个大概咋做的
  5. 用户他可能前后两次回答的问题,完全不同,这个你怎么区分
  6. 你们是调用的什么模型,是在自己服务器搭建的还是调用的 API

17.百度一面

都围绕的简历提问

  1. 自我介绍
  2. 简单介绍一下平时做的项目还有参加的比赛实际提升的哪些能力

【派聪明】

  1. 混合检索当中向量化计算具体是怎么做的
  2. 用户的文档、向量化的数据存在哪里
  3. 关键词检索和向量检索的得分是怎么做归一化处理的(加权的比例是怎么考虑的 怎样让最终结果更贴合用户需求)
  4. 介绍一下 kafka 文档异步处理流水线
  5. 技术派中用的 RabbitMQ,这里用的 Kafka,技术选型上是怎么考虑的
  6. Kafka 处理的具体流程是什么 上传一个文档就发一个消息吗

【技术派】

  1. 详细介绍一下技术派
  2. 为什么要“先写 MySQL,再删 Redis”
  3. 用户活跃度排行榜,Redis 具体存的什么数据,直接在 Redis 中更新还是 MySQL 中更新
  4. Canal 订阅并解析 MySQL binlog 具体是用来做什么的
  5. 有没有考虑过 binlog 量大的问题 当前方案的性能瓶颈在哪些方面

【MYDB】

  1. 介绍一下 MYDB
  2. 一条语句在 MYDB 中执行的流程是怎样的
  3. B+树是如何设计的 数据在实现的 B+树的结构中是怎么存放的
  4. MVCC 原理机制 主要的优点

【MySQL】

  1. 平时遇到的 SQL 问题 怎么优化的
  2. 具体的优化思路
  3. 考虑索引优化时 有哪些性能比较高的索引

反问:

评价: 项目思路挺超前的 考虑到跟 AI 相结合

面的是商业研发部 业务和广告相关

复盘: 多练习。

面试过程中回答思路不够清晰 卡顿严重 对项目中的一些实现不够了解。理清简历上项目的技术实现的链路(对哪些数据用什么技术做了什么操作)

18.传音控股一面

  1. 先做一个自我介绍。
  2. 研究生期间主要有那些课程(专业人数),你找的软件之类的工作和你的专业相关性有多大(通信专业,为什么会选择走软件,以及龙旗询问的为什么纯软件,而不是硬件呢)
  3. 掌握集合框架,你简单介绍一下你常用的一个集合是什么?它的数据结构是什么?,查询速度快是怎么做到的?

c 语言接触过没?同样的道理,在 C 语言中也有数组,通过下标去查询元素,它快速的原因和计算机的某个原理是相关的,这个原理是什么呢?数组和链表相比的查询效率是高还是低呢?

我现在给你设计了一个链表,现在这个链表的一个节点存储的是一个 int 的数据,它的数据结构是什么呢?每一个数据可以作为一个元素,这个元素肯定是通过一个数据结构来进行封装的,数据结构是什么?包含了那些元素?比如说我现在有一个链表,有 10 个元素,我想删除第四个元素的逻辑是什么,原有的链表队首加一个元素呢?数组和链表的查找一个元素的时间复杂度是多少?数据结构中,有时间复杂度和空间复杂度,什么叫空间复杂度呢?

ArrayList 它可以动态扩容是和它的空间复杂度是有关的(如何最大化优化它的空间复杂度呢-换一句话说,源码里面的动态申请内存的策略是什么呢?有具体去了解过吗?)

在平常的使用中,如何避免这种频繁的扩容呢?会导致它们的效率不断地降低,因为你不断地扩容,就需要不断地进行申请,会导致内存碎片很多,这个有没有考虑过呢?

ArrayList 元素对象,对象类型调用它的 ADD 调用对象,加入这个对象是一个深拷贝还是浅拷贝。一个对象要支持的深拷贝需要注意那些方面?

  1. 面向对象编程,解释一下你是如何进行理解面向编程的(24 分时,开始面向对象)
  2. 说一下 java 里面的反射,有用过的吗?如何通过反射来实现你说的一对多呢?你在使用 java 的框架中,你知道的哪一个框架是用到了反射的呢? 5.单例方式是什么,思想是什么,应用的场景一般用在哪里?单例方式有几种实现方式
  3. 如何创建一个线程池呢?java 中的 jdk 框架一共是几种创建方式的呢?创建了一个线程池,如何中断当前的线程,去执行另一个线程呢?ThreadLocal 你用的多吗,只是了解还是,在项目中有用到的吗,为什么会用到?ThreadLocal 的作用是什么?CopyonWriteArrayList 这里有没有用到 ThreadLocal 呢?CopyonWriteArrayList 是线程安全的吗,为什么是线程安全的呢?
  4. 你如何理解并发编程,什么叫并发编程呢,在 java 中针对并发编程,我有那些控制机制,或者类似的并发容器?如何保证 ArrayList 这种数据的完整性?有几种锁?解释一下什么叫悲观锁?
  5. 计算机网络的七层网络结构说一下?
  6. 你这个 企业级智能问答系统,这个是企业级的应用还是研究生做的导师的项目呢,项目的初始学习来源在哪?系统架构设计是你独立完成的吗?发现你写的重点是文件的上传进行独立负责的,这个你们一开始使用的是什么技术方案呢,还是后来遇到了什么瓶颈,去进行了优化呢?你说的在 deepseek 上传大文件失败的原因仅仅是因为上传的文件过大,就拒绝了的吗?使用了 MinIO 使得可以上传大文件?
  7. 你现在在哪?这个岗位在重庆你知道的吗?
  8. 大的市场,也就有大的挑战,如果你来做这个岗位的话,你有什么想法能够让公司的产品有更大的竞争力。
  9. 现在手机以及很普及了,假如你去设计一个手机的一个价值点,你有什么想法
  10. 你觉得在手机上使用 ai 能够给用户带来更大的便利性?

反问 1:后续是在重庆工作还是? 反问 2:对于应届生的培养是什么样的?

19.招银网络二面+ hr 面

参加了招商银行宣讲会 贴一下二面面经

招银二面 自我介绍

  1. 让我具体说一下我参与比较深的项目,并问了些你认为这个项目要怎么优化的问题
  2. 问了 rag 项目一些问题
  3. 把大文档切割会有什么样的问题
  4. 如果知识库太大了,匹配效率慢了,该如何解决

无八股手撕

20.天翼云 一面

30min

项目拷打:

  1. 讲一下派聪明项目的难点(我提了文件上传优化)
  2. Redis 部署
  3. kafka 的生产者消费者分别是什么?
  4. 如何运作的?
  5. 口头表达一下链表相交的解法
  6. 八股 LRU 用在操作系统里面哪个地方
  7. tcp 如何保证可靠性?
  8. 具体说一下拥塞控制
  9. 快重传具体实现
  10. Redis 三大缓存问题
  11. 操作系统的启动过程
  12. Linux 如何修改成自启动(不记得了,就说的改 etc 下的配置文件)
  13. 进程间通信方式
  14. 口述如何让 cpu 和节点资源更加平衡(答的不好,面试官想要算法,我答的宏观层面)
  15. 反问: 简历如何优化(面试官说我有个字打错了,我看了下确实,很尴尬)

部门内容 一共几轮面试 两个面试官交叉面的,问题都比较简单

21.顺丰科技二面

26 届秋招:顺丰科技二面

  1. 自我介绍
  2. mysql 慢查询的解决思路?如果索引没问题,是多表 join 引起的问题,有什么解决思路?除了分库分表呢?
  3. Kafka 怎么保证消息不丢失?消费者的手动 ack 消息是发给谁的?
  4. 队列怎么确认消费者的消息?队列挂了怎么办?开了持久化机制之后,吞吐量上不去怎么办?
  5. java 中怎么创建线程池?线程池参数、阻塞队列有哪些?利用线程池执行任务的流程是怎么样的?默认的拒绝策略是什么?核心线程不会被回收,你觉得底层的机制是怎么保证的?
  6. 你的项目中,向量数据库是怎么找到相似度比较高的 topK 个向量的?怎么判断两个向量之间的相似度?
  7. 混合检索有没有做分档分片?具体的分片方法是?目前的方案有什么问题?你觉得有没有更好的方案?
  8. 手撕:爬楼梯(动态规划秒了嘻嘻)

22.美团测开一面

美团测开一面-美团酒店机票页面核心测试组

  1. 派聪明项目难点
  2. 怎么测试检索准确率
  3. 自己的项目是开源的吗,简历上就是自己实现的部分
  4. 一个页面中有几个列表,中间插入一个广告,页面不显示会怎么去测试
  5. 问了一些零碎八股 最后反问面试官,说的应该确定方向再去深入技术,他们组要求得会测试,和基础比较扎实 哎感觉浪费机会了,再沉淀沉淀

23.美的线下终面

美的线下终面完成,开泡(hr+部门主管面)

  1. 问毕业论文题目,具体怎么实现的
  2. 问派聪明 IK 分词器为什么用这个,为什么不用 xxx(没听过)
  3. 管理的什么样的知识库,我回答是 pdfword 等文本数据。面试官应该是说的什么部门的,比如技术部门还是 hr 部门。我说没有细分部门,因为做了鉴权
  4. 为什么用的这一套技术栈感觉很奇怪 回答的是是面向企业内部的知识库,因为这个项目是分了三期完成,首先是知识库搭建,后期还要集成 mcp 最后还要加智能体,所以用的自研方便集成。面试官好像也不太满意,说当时你们对接的人懂这个 rag 吗(对不起二哥哈哈哈哈哈我包的实习)
  5. 分块怎么分的
  6. Redis 存的是什么,用的什么数据结构 一开始答得 string(脑壳已经有点麻了)反应过来发现不对。用的 hash 存用户 id 会话 uuid,uuid 和会话记录。
  7. 追问,那会话记录是生成一句存一句吗 这个不知道,扯了一下 value 的形式,然后答是的 差不多就这些

Hr 提问

  1. mbti 是什么?
  2. 你觉得自己可以改善的缺点是什么

反问评价一下,主管说感觉 rag 这个项目了解的不够深入 Hr 说成都的岗位很少很少,大部分在佛山 有点寄

24.成都后端拓尔思一面

面试官人很好,会引导,一点都不 push

  1. 只有两个鸡蛋,100 层楼,至少多少次测出不会碎的最高层(答的二分,然后让考虑一个鸡蛋的情况,答出来了,一步一步给我讲怎么做到两个鸡蛋的情况)
  2. 问简历,觉得哪个项目最难做,为什么(给我建议,体验一下好的 ai 工具)
  3. rag 的存库和检索怎么做的:(润的派聪明)chunk+embedding+elasticsearch,knn+关键词,作为 ref 构成 promot 给 LLM
  4. 大模型怎么部署的: 最开始是 Ollama+Deepseek 本地运行,后来作为学习,使用 Langchain4J 调用通义千问 api
  5. 对 ai 看法
  6. 个人通勤时间,籍贯等信息
  7. 是否想往全栈发展
  8. 实习情况 面试官解答部分: 他怎么用的 ai,建议我加强系统性学习 ai,并说明公司用 ai 的场景 简历写的很好,但是希望我尽量减少手工编码,多使用 ai 工具

反问:

公司业务场景,后端是否注重代码复用

如果我要发展全栈,是否支持前一周学习 vue:没关系,有前端业务人员,有困难可以问他

如果通过后是否会有技术面:等面试官的主管确定,不需要应该就他一面

最后:之后回复您

不知道会不会凉 😅

25.美团一二面

美团一面:

  1. 讲下项目的背景;
  2. 介绍下实习;
  3. 介绍下 Java 的 HashMap;
  4. 集合中哪些是线程安全的,哪些是线程不安全的;
  5. Java 集合中的快速失败机制有了解吗;
  6. Java 的垃圾回收器怎么判断一个对象是可回收的呢;
  7. Java 的 static 关键字主要用在哪些场景;
  8. 可以通过 Spring 注入的方式给静态变量赋值吗;
  9. 介绍下 Spring 的 AOP,有哪些实现方式;
  10. 通常用 Redis 做缓存,为什么不直接用 Map;
  11. 简单讲一讲 MySQL 索引原理;
  12. 什么情况下会出现索引失效。

美团二面:

  1. 拷打实习;
  2. AI 助手这个项目解决了什么问题,怎么拆解问题,选择技术方案的;
  3. 如果检索出来的结果都没有权限怎么办;
  4. 如何提高向量检索的召回率;
  5. 假如评测之后发现召回率不符合预期,或者说某些 case 应该召回,但实际没有召回或者排序比较靠后,有哪些办法可以优化;
  6. 在平时开发的过程中,哪些地方会用到大模型;
  7. 使用过类似于 cursor 的这些工具吗,在这个过程中有什么心得,或者说遇到了些什么问题,怎么解决;
  8. 怎么优化 SQL 性能;
  9. 索引失效的 case 有哪些;
  10. 说一下 MySQL 索引的数据结构;
  11. 讲一下事务的 ACID;
  12. 有过 JVM 调优或者解决 OOM 的经历吗;
  13. 说一下 JVM 的内存结构,以及垃圾回收的大概过程;
  14. 如果说需要并发操作集合,有什么办法去避免冲突的问题;
  15. ConcurrentHashMap 怎么保证线程安全的;
  16. 缓存的技术选型有哪些;
  17. Redis 性能比较好,得益于哪些设计;
  18. Redis 数据结构有什么特殊的实现;
  19. Spring 有哪些机制来规避循环依赖问题,能完全解决吗;
  20. 工作或者项目中有哪些环节可以通过 AI 提效。

26.阿里健康一面

阿里健康一面:

  1. 拷打实习;
  2. 有一个场景,有一个大文件 10GB,每个分片为 5MB,有 1000 个线程并发执行分片上传,怎么设计;
  3. 文件上传到 99%,网络断开了,怎么快速恢复;
  4. 大量的人上传同一个文件,怎么保证存储不浪费;
  5. 消息队列可能会有各种问题,怎么保障这个文档最终一定会被处理完成的;
  6. 这个过程如果要配置一些预警,你觉得应该配置哪几个重点的指标;
  7. 描述下整个用户发起请求查询到最后返回结果的过程;
  8. 大模型应用开发跟传统的应用开发,有哪些需要额外注意的点,有哪些不同;
  9. 大模型在输出的过程中,比如你让他按照某个格式输出,他并不一定能百分百遵循,除了 prompt 优化,还有什么其他的方式让他能够以接受的格式输出。

27.三七互娱一面(平台开发)

拷打实习(10min)

  1. Rocketmq 消息传递的顺序性
  2. 顺序消费的这个过程当中消费者组和 topic 怎么选择
  3. 说一下策略模式的原理
  4. spring 的框架源码中各个组件是否有哪里是用到策略模式的。

拷打 rag 项目(15min)

  1. 项目中文档是如何进行切分的
  2. Prompt 是怎么设计的
  3. top-k 是 20 条消息的话,是假如前 20 条(top-20)返回的结果里都没有命中那个最关键的条款,而这个关键信息恰好排在第 21 位,这种情况怎么解决
  4. 在做检索的时候,有什么提升方法提升它的检索质量
  5. 为什么选择用 JWT 做鉴权?
  6. JWT 是无状态的,那是不是只要有人拿到了这个 token,不管是谁,都可以拿着它去访问接口?
  7. 账号被禁用了,但 token 没过期怎么解决

八股(5min)

  1. Java 中的锁有哪些
  2. 在读多写少的场景下如果发生了写操作,应该用什么锁
  3. ReentrantReadWriteLock 的核心原理是什么

反问

技术派上阅读体验比知识星球更好: https://paicoding.com/column/10/25 光格式整理了一个小时,细糠,大家慢慢吃,基本上能把派聪明的所有题目都覆盖到了,面试再也不愁。兄弟姐妹们,派聪明 RAG 这个项目真值了呀。

1.快手快 star

  1. 描述一下上传文件,提问到显示答案整个数据流以及涉及到的模块/技术栈,
  2. 怎么 chunk 的,为什么这么做?
  3. 用的什么模型,有对比过吗
  4. 检索结果不符合预期怎么办
  5. ES 里怎么存的
  6. 分片上传是怎么做的?断点续传?你这个场景有意义吗

2.小红书一面

AI & RAG 相关

  1. RAG 怎么解决 LLM 上下文窗口有限的问题?
  2. RAG 里的“重要性重排序”是怎么判断哪个内容更“重要”的?
  3. 流式对话支持多轮吗?怎么实现的?
  4. 提示词做了哪些优化?如果多轮对话关联性不强,怎么抓住新问题的重点?
  5. OpenAI 协议里,上下文的角色有哪几种?
  6. system, user, assistant 这几个角色在使用上有什么区别?

Java 基础 & 并发

  1. 讲讲 Java 不同更新版本的区别,特别是关键版本。
  2. 为什么 Spring Boot 3.x 要用 Java 17+的版本?项目里用了哪些新特性?
  3. Lambda 表达式和 Stream API,跟传统的 for 循环比,优缺点是什么?
  4. parallelStream()为什么性能好?底层是什么实现的?
  5. 如果不用 parallelStream,用传统 for 循环自己写并发提交任务,代码大概分几块?
  6. 都说 Java 线程“重”,Go 协程“轻”,这个“重”具体体现在哪?
  7. 为什么 Java 线程实际只用很少的栈,但 JVM 却要给它分配那么大的栈空间?
  8. 协程到底是个什么东西?
  9. Java 里写 for 循环有几种方式(比如用索引 i,用迭代器),它们有什么区别?

算法手撕

  1. 实现一个函数,找出字符串里所有长度大于 1 的子回文串。

3.某对标亚信公司一面

  1. 面了一家听说对标亚信的公司,面试官口头和我说过了,下一轮 boss 面让我瞎聊就行
  2. java 基础和集合查缺补漏面经:
  3. embedding 用什么模型?
  4. 混合检索?怎么评估准确性?
  5. 大模型的选择
  6. 上下文管理?
  7. redis 的击穿, 雪崩,穿透
  8. AOP
  9. MySQL binlog 监听通过主从复制原理
  10. ThreadLocal
  11. 消息队列,消息如何不丢失?

要我现场跑跑派聪明,没跑起来。。。很悲催,我没改前端也不怎么熟悉流程。

4.未知公司

面经:

  1. 1、介绍项目从数据上传到最后存入数据库的流程、RAG 流程
  2. 2、切块的步骤、如何评价优化前后的 RAG 的好坏
  3. 3、针对用户不同的提问:提问语句长短不同,分别怎么检索?
  4. 4、向量化的数据有做处理吗?

5.腾讯二面

  1. 1.派聪明技术选型,如为什么用 minio 做文件存储、选择 es 等
  2. 2.rag 的准确率如何优化
  3. 3.语块如何分片
  4. 4.es 相关
  5. 5.大文件也可以断点续传为什么要分片?
  6. 6.从用户体验上来说,一个文档也没有很大,分片上传的提升并不大,这里如何考虑的?

6.合合信息一二面

一面面经

拷打项目

  1. 讲一下自己的 rag 这一套流程的理解
  2. 在里面采取了哪些技术
  3. 对接大模型用的什么
  4. 文件拆分是怎么分割的
  5. 用户提交问题后的流程
  6. 中间过程纯手工编的吗?(我答的没用 langchain4j 或者 Spring ai)
  7. 如果有充足时间优化 会优化哪些点
  8. 怎么解决检索过程中的权重误差?
  9. 如何优化检索来提高回答准确性?
  10. 了解过 agent 和 mcp 吗?
  11. 可以把整个流程让大模型自动弄吗?
  12. 如果用 agent 代替,你会怎么设计呢?
  13. 多人会话历史的窗口怎么设计的?
  14. 考虑过怎么优化吗?(我提到可以压缩历史上下文然后拼接) 压缩如何实现呢?
  15. 大文件上传优化是一开始就这样考虑的吗?还是遇到了什么问题才这样设计的?
  16. 文件完整性怎么保证的? 项目上线了吗?

聊 mydb 项目 是自己做的吗?(go 改的) 最大收获是什么?

  1. 你提到了 mvcc,mysql 里面的 mvcc 实现细节讲一下?
  2. 什么隔离级别会导致这样的问题?
  3. 你是把数据库完整实现了吗?(简单实现)
  4. B+树的索引是怎么实现的?

拷打八股 tcp 建立和连接 阻塞控制怎么控制的?

  1. 选一个细致讲一下(我说了慢启动)
  2. tcp 和 udp 的区别 https 的建立过程
  3. 进程和线程的区别和联系
  4. 进程的调度策略
  5. 进程间的通信方式
  6. socket 编程用在什么时候(有点记不得了 刚刚不该提 socket 的)
  7. socket 最大优势是什么?
  8. 他是如何防止网络阻塞的?
  9. io 多路复用原理 select 和 epoll 区别 页面置换算法有哪些?
  10. lru 原理?(这个时候快一小时了,我还以为他会让我手写 lru,累了)
  11. 虚拟内存?
  12. 磁盘调度算法有哪些?
  13. c++里面栈快点还是堆快点(我就不该说本科学过 c++ 我记得我报的 java 岗) 分为哪些区?
  14. python 用过吗?和 java 区别在哪里?
  15. 常见的垃圾回收算法? 说一下 cms 和 g1 区别 cms 缺点
  16. 有接触过分布式系统吗?

二面面经

60min 拷打项目

  1. 派聪明 prompt 是如何构造的?
  2. 大文件上传优化是怎么做的?
  3. 解析文档用的是什么?
  4. chunk 是怎么切割的?
  5. 是否可以优化?
  6. 用的哪个大模型?

mydb

  1. mvcc 基本原理(直接吟唱)
  2. B+树和 B 树的区别

手撕 leetcode 621 (改了一下题目 第一问是原题,第二个求排列组合数没写出来,不过面试官说目前还没人写出来 我感觉再调半小时能写出来)

7.虾皮一面

一道生产者消费者的题 acm

派聪明 讲一下主要模块和功能

派聪明是一个企业级的 AI 知识库管理系统 。它的核心功能是对用户上传的私有文档(比如 Word、PDF、txt 等),进行语义解析和向量处理,然后存储到 ElasticSearch 中以供后续的关键词检索和语义检索。

它的主要模块和功能包括:

  1. 文档处理 :用户上传文档后,系统会像图书管理员一样,自动将文档内容拆分成一个个小的知识片段。
  2. 知识向量化 :接着,派聪明会利用豆包/阿里的向量模型为每个知识片段生成一个独特的“语义指纹”,并存入 Elasticsearch 中。
  3. 智能检索 :当用户提出问题时,系统会先将问题转换成“语义指纹”,然后在 ES 中寻找与问题意图最匹配的几个知识片段。
  4. 生成答案 :最后,派聪明会将用户的原始问题和找到的相关知识片段一起交给大型语言模型(比如 DeepSeek ),让这个“大脑”基于给定的上下文,生成一个精准、流畅、人性化的回答。

es 怎么存的

我们在 ElasticSearch 中新建了一个名 knowledge_base 的索引,它将为每一条数据存储两种关键信息。

其中,textContent 字段用于关键词搜索,vector 字段用于语义搜索。关键词会通过 ik 分词器直接存储在 textContent 字段中,而文本的 chunk 会通过 embedding 模型向量后存入 vector 字段。

kafka 是如何处理异构的

首先,Kafka 能处理异构系统的核心在于,它本身并不关心消息到底是什么内容。无论是 JSON、文本,还是其他任何格式,Kafka 的服务端都一视同仁,把它们当作一堆字节数组(byte[])来处理。

这种把数据格式的定义和解析工作,从 Kafka 服务端转移到客户端,也就是生产者和消费者身上。就是解耦的关键。

生产者在发送数据前,会用一个“序列化器”把程序中的数据对象“翻译”成字节数组。消费者在收到数据后,会用一个“反序列化器”把字节数组再“翻译”回自己能理解的数据对象。

比如说用户提了一个问题, ParseService 在处理后,会向 user_interactions 主题发送一条 JSON 格式的消息: {"userId": "123", "action": "ask_question", "timestamp": 1678886400, "details": "Kafka 是什么?"}。

有哪些生产者哪些消费者

从生产者角度来看,系统的核心生产者是 UploadController.java 中的文件上传控制器。当用户完成文件分片上传并触发合并操作时,系统会在 mergeFile 方法中通过 kafkaTemplate.executeInTransaction 以事务性方式发送 FileProcessingTask 消息到 file-processing-topic1 主题。

消费者方面, FileProcessingConsumer.java 承担着主要的消息处理职责。它监听 file-processing-topic1 主题,接收到 FileProcessingTask 后会执行文件解析、内容提取和向量化等复杂的 AI 处理流程。

消费者采用了智能的错误处理机制,当处理失败时会自动重试最多 4 次,如果仍然失败,消息会被自动路由到死信队列 file-processing-dlt 中,避免了单个问题文件阻塞整个处理流程。

向量文件如何存储在 es 里面?

prompt 是如何设计的?

首先,在构建 Prompt 的时候,我们把系统规则始终放在最前面,并用中文直接声明几件关键事情,比如:回复必须标注引用编号(例如来源#1),如果检索不到结果也必须礼貌告知“暂无相关信息”,这一点是通过配置明确约束模型输出行为的。

其次,我们在技术上对检索结果和用户问题进行了语义隔离,所有来自知识库的内容都会被包裹在一对特殊符号 > ... > 之间,这样能让大语言模型非常清楚哪些是“引用材料”,避免混淆生成逻辑。

针对引用本身,我们为每个知识片段分配了临时编号,比如 [1] 某某内容,然后在系统规则中硬性要求模型在回答时使用“来源#1”这样的格式进行标注。后续前端会把这些引用变成超链接,用户点一下就能跳到原文,非常有利于增强回答的可信度。

另外考虑到一些场景下,知识库确实可能没有匹配内容,为了兜底,我们会在构建 Prompt 时检测是否检索结果为空,如果是,就把 context 设置成“(本轮无检索结果)”,引导模型不要胡编,直接用自带知识简要作答,或者坦诚说“找不到”。

为了支持连续对话,我们把用户对话历史存在 Redis 中,但也做了长度控制,最多只保留最近 20 条。如果超过,就自动裁剪,这样可以防止上下文爆炸,保持性能和响应效率。

最后,整个 Prompt 逻辑,包括提示词、引导规则、分隔符、温度参数等等,都是配置在 application.yml 文件里的,可以随时调整规则或采样参数。

mysql 八股

mvcc 间隙锁

8.百度测开一面

百度测试开发工程师 一面

自我介绍。

拷打派聪明:

  1. ① 项目技术栈
  2. ② 项目搜索怎么实现的?
  3. ③ 项目在开发的过程中怎么实现文件内容上传。
  4. ④ 如果文件上传的内容有先后迭代顺序,比如婚姻法有前后两版,那么用户在提问时会返回什么?
  5. ⑤ 如果用户在表达主观的词,类似“我今天很郁闷”,项目会返回什么。(没答好,开始没听懂,后面面试官提示里面应该有个逻辑处理)

测试:

  1. ① 操作网络了解吗
  2. ② 如果给你一个网站,你发现这个网站它加载缓慢,那你可以有哪些测试的点?
  3. ③ 你平时用过哪些测试的工具?怎么用的? 数据库: 说一下索引相关的内容。 怎么判断索引失效。

手撕:

  1. ① 给你一个类似百度的页面,用 JAVA 实现你能想到所有测试点的测试样例(测试脚本)。(没撕出来)
  2. ② 去除重复字符串

反问 面试一共几轮 什么时候出面试结果 测试岗的测试内容一般是什么

9.百度测开二面

百度测开二面复活赛凉经-80 分钟快榨干了,一个八股没问,出来一个小时秒挂。

  1. 1.讲研发和测试的区别,问我更倾向哪个,为什么
  2. 2.拷打项目长达半小时,派聪明被拷打穿了,明显感觉面试官是 next level 的哈哈哈。

怎么测试本地知识库检索的准确性的,怎么做弱网测试,怎么模拟弱网的环境,有什么兜底的机制,大模型出现幻觉你怎么判断怎么测试,技术怎么选型的,向量检索用的什么中间件为什么选它。

我还记得的就这些,但应该不只是这些,其实这些问题我多少准备过,但面试官明显想要更自动化更标准化的答案,就不是靠人工去判断,这块下来要重点准备一下。

  1. 3.手搓一个单例模式的例子
  2. 4.给一段代码,看有什么错误,让你自己去写,你作为测开要考虑什么。(这个问题答的很拉胯,平时确实想不到这些)
  3. 5.手撕两个有序数组取第 k 大的值,撕出来了,但测试用例还是被问穿了哈哈哈。
  4. 6.了解 Linux 的 cp 命令么。让你自己去测试这个命令,你要设计哪些测试用例。

这题明显答的不好,面试官希望我有一套完整的方法论,不是自己慢慢地把一个个情况想出来。 总体来说这回压力给的挺大的哈哈哈,不过感觉启发很多。

10.慧科讯飞实习面经

今天做了慧科讯飞实习的面试,依然没有狠狠敲打项目,基本上都是八股

  1. 1.讲讲多态
  2. 2.为什么要把基本数据类型做成包装类
  3. 3.arraylist 和 linkedlist 区别
  4. 4.array 的扩容,linkedlist 转成 arraylist 怎么做(我胡说的,我说一个一个加,但应该有对应的方法但我没用过,实际上 toarray()就好了)
  5. 5.为什么重写 hashcode 的同时要重写 equals
  6. 6.string stringbuilder stringbuffer,(这个八股我又又又忘了,就说了个 string 不可变,其他两个可变,java 基础的八股得复习了)
  7. 7.RAG 的流程,检索的流程。
  8. 8.因为我魔改了一下项目,所以问我大模型的结构化输出怎么做的。模型的部署,用的什么模型。
  9. 9.mydb 的压力测试怎么做(蒙圈了,我说这是一个学习用的项目,参考大佬的 go 项目写的,人家写的 QPS 提升,但我自己没有测试,主打一个满嘴跑火车)
  10. 10.sql 的慢查询怎么排查,写了两个 sql 语句
  11. 11.问我 docker 用过吗
  12. 12.我说我研究生做深度学习的,就问我 python 的基础知识,那么果然没答上然后就不问了,开始介绍他们部门的业务和工作,说他们要转 python 开发,问我能接受吗。是个北京小公司的实习岗,我不知道要不要尝试去一下,因为目前投的中大厂的简历基本上初筛都挂了,应该是没有实习的原因吧,我想要不要搞一个实习经历。

哎,挺失落,又没有狠狠拷打项目。早上一看中大厂简历的流程全被终结了,双非硕果然路边一条。

11.菜鸟一二面

菜鸟一面——风控管理

  1. 1.自我介绍
  2. 2.实习相关
  3. 3.项目中,有没有涉及安全保证的地方
  4. 4.分布式 CAP 理论
  5. 5.一般分布式业务系统使用哪两个原则
  6. 6.介绍一下 rpc 框架
  7. 7.rpc 与 http 有什么区别?为什么有了 http 还要有 rpc?
  8. 8.http 协议的内部结构 9.调用 AI 模型返回的格式可能并不如人意,这个问题怎么解决?
  9. 10.说一下调用 LLM 的角色分类?使用哪种角色会更好?
  10. 11.就算使用 system 角色,返回的格式也不能保证 100%符合要求,怎么解决?
  11. 12.LLM 大模型返回答案时间长,怎么解决?
  12. 13.业务设计:前端传进来用户,一个用户可能对应多个角色,每个角色可能对应多个权限,后端最终需要返回给前端角色集和权限集。

考虑一下整体的业务流程怎么实现,用什么数据结构去存储用户与角色、权限之间的关系?用什么数据结构去跟前端交互呢?

14.追问:如果简化为 int 数组保存映射关系,如果承载的角色达到 50,超过了 32 位怎么办?

26 届秋招:菜鸟二面 Java 部门:风控

  1. 1.自我介绍与面试官介绍(他说他是风控主管…)
  2. 2.实习相关:提到的需求挨个问,麻了
  3. 3.问需求中有没有性能、系统链路优化之类的经历,或者你的工作内容涉及到系统功能、内部流程的一些改造或者优化
  4. 4.不问八股文,我们来说一些开放场景
  5. 5.某个平台的筛选或创建流程,偶发超时、系统宕机之类的情况,你说一下整体系统排查的思路或者逻辑
  6. 6.在之前的实习或项目经历中,有类似接口调优之类的经验吗
  7. 7.如果已经定位是 Dao 层之下的代码导致的慢查询问题,接下来怎么排查呢
  8. 8.比如就是数据库的数据量大,又该怎么优化行查询慢的问题呢
  9. 9.你说一下你这个 AI 问答平台,引用了哪些模型?说一下整体的流程,整体的业务场景是什么样的?deepseek 在这里承担的角色、责任是什么?
  10. 10.你觉得像大模型这种东西在实际的业务场景中,会出现什么问题呢?希望能够依赖 AI 解决什么问题呢?
  11. 11.反问:部门的主要业务、对我的建议

PS:这个面试官问的问题特别活络,而且每个问题都会给你纠正,说的也很多,人很好很真诚

12.字节客户端二面

字节客户端二面 这下是真拉

  1. 1.讲讲强引用和弱引用,分别有什么使用场景
  2. 2.垃圾回收算法了解吗
  3. 3.说说 g1 和 cms
  4. 4.说说分代回收
  5. 5.hashmap 的底层,红黑树会退化回链表吗,长度为什么是 8。
  6. 6.cas 了解吗,cas 在 java 中怎么实现,也没有用过
  7. 7.https 为什么是安全的
  8. 8.一个 url 显示到主页的过程
  9. 9.域名解析的过程
  10. 10.介绍一下项目
  11. 11.混合检索的准确率怎么算,有没有考虑过从业务上去优化准确率。
  12. 12.意图识别有没有兜底策略
  13. 13.为什么 websocket,怎么使用的

算法,1.队列实现栈,2.给一个数组,给一个数 k,如果这个数组有一个连续不小于二子数组只和是 k 的倍数那么这个数组是好数组。

哎,太拉稀了,猛攻算法!

13.得物一面(AI 技术面)

  1. 如何不用临时变量交换 a 和 b 的值
  2. 什么是双端队列?说明特性与使用场景
  3. String、StringBuilder、StringBuffer
  4. java 中,线程安全、线程不安全的容器有哪些?
  5. 数据库中,聚簇索引与非聚簇索引
  6. 说说对数据库锁的理解,包括锁的机制、种类等
  7. 说说项目中碰到困难的经历(提到了 ES,我就不该提…)
  8. 追问:ES 倒排索引实现原理、向量数据怎么检索的?
  9. 追问:KNN 算法在高维向量匹配时,会遇到维度灾难的问题。请你解释并解决。
  10. 追问:降维后信息丢失的问题怎么解决?什么情况下可以降维?PCA 的原理和使用场景,t-SNE 呢?
  11. 将学术知识运用到项目中的例子
  12. 追问:B+树实现的难点在哪里?如何解决的
  13. 在实际开发中,怎么解决团队协调问题的?如何主动寻求团队成员的反馈?
  14. 回想一个初始方案没有奏效的场景,如何调整并解决的?

14.未知公司

基本围绕着项目拷打,穿插问项目涉及的八股

paismart:

  1. 断点续传具体怎么做的
  2. es 在项目中的作用
  3. redis 在项目中的的作用
  4. redis 常见数据结构
  5. redis 与 es 存储数据的差异
  6. 缓存击穿、穿透、雪崩
  7. 为什么引入 kafka
  8. 项目最大的挑战,项目来源,是否上线

mydb:

  1. 说一下事务,开始、提交、回滚事务的命令
  2. 事务隔离级别
  3. MVCC
  4. 乐观锁、悲观锁
  5. mysql 实现乐观锁的思路
  6. 两阶段提交
  7. 主键和普通索引的组织结构
  8. 覆盖索引
  9. 为什么使用 b+树作为索引
  10. 如何排查慢 sql

纯八股:

  1. TCP 如何保证可靠性
  2. notify()和 notifyall()
  3. jvm 内存区域的划分
  4. 类初始化过程
  5. 双亲委派机制
  6. 垃圾回收算法
  7. synchronized 和 ReentrantLock

手撕:二维矩阵搜索

15.OPPO 线下一二三面

26 届秋招:OPPO 线下一二三面 岗位:后端工程师

业务一面:

  1. 自我介绍
  2. concurrentHashMap、CopyOnWrite 原理
  3. CAS 操作,带来哪些问题
  4. jvm 垃圾回收有哪些阶段、哪些阶段 STW、G1 回收器原理
  5. spring 自动装配原理、启动原理,要在启动阶段自定义逻辑该怎么做?
  6. redis 缓存穿透的解决方案?布隆过滤器为什么不支持删除?怎么样支持删除?
  7. aop 的底层原理?两种代理模式的区别?性能上呢?
  8. 说说实习期间觉得有技术难点的地方
  9. 介绍一下怎么使用 ES 和 embedding 实现检索的?ES 里面存的是什么?
  10. 看你用过 AI,说说你对现在 AI 发展的理解吧?能帮我们干什么?
  11. 算法:说一下 LRU 底层怎么实现的

业务二面:

  1. 自我介绍
  2. jvm 垃圾回收机制
  3. redis 主要用来干什么?业务场景?
  4. redis 为什么快?有了解过 redis 底层是怎么组织数据的吗,有关索引的?
  5. 项目里面为什么要用 redis、mq?出于什么考虑?你觉得为什么要有 mq 这样的中间件?
  6. 我看你用过 elasticsearch,主要用来干嘛的?里面存的什么数据?
  7. 本科竞赛:怎么进行排期的?做了什么努力?如果遇到意见冲突怎么解决?
  8. 你对现在的 AI 是怎么看待的?
  9. 实习期间接触过 rpc 吗?你觉得有了 http 为什么还要用 rpc?rpc 的原理呢?
  10. 反问:简单的业务介绍

HR 面:

  1. 自我介绍+三个关键词形容自己
  2. 对 oppo 的了解
  3. 目前面过哪些公司?你对这些公司排序的一个标准是什么?你更看重哪些因素?top2 是?
  4. 过往经历让你感觉最紧张最不知所措的经历?通过什么方式解决的?结果怎么样?
  5. 这个事情现在已经过去了,你觉得还有哪些可以优化的点?
  6. 如果 base 地不满意的话,接受调剂吗?
  7. 简单介绍一下家庭情况?家人或对象有限制你的 base 地吗?
  8. 反问:结果大概多久出?具体的部门和工作大概到什么时候可以得知?offer 签约会上会公布什么信息?

16.美团-业务研发平台-一面

一面面了一个小时左右,开始就是一段八股的拷打,然后问了一下实习,项目的话写了两个,面试官问派聪明还是问的比较多。

针对第五点那个问题想跟大家讨论一下,因为实际项目跑起来的时候确实会碰到这种问题,就是上下问题问的完全不同,后面的回答还是会响应之前回答从知识库中获取的一些跟当前问题不想关的内容。

派聪明 相关问题:

  1. (RAG)那个异步任务调度大概是咋做的
  2. 通过多线程也可以实现异步,比如说主线程返回,然后把任务交给多个子线程,为啥没用这个方法
  3. 为啥要实现双引擎索引呢
  4. 用 Redis 存储用户的上下文,这个大概咋做的
  5. 用户他可能前后两次回答的问题,完全不同,这个你怎么区分
  6. 你们是调用的什么模型,是在自己服务器搭建的还是调用的 API

17.百度一面

都围绕的简历提问

  1. 自我介绍
  2. 简单介绍一下平时做的项目还有参加的比赛实际提升的哪些能力

【派聪明】

  1. 混合检索当中向量化计算具体是怎么做的
  2. 用户的文档、向量化的数据存在哪里
  3. 关键词检索和向量检索的得分是怎么做归一化处理的(加权的比例是怎么考虑的 怎样让最终结果更贴合用户需求)
  4. 介绍一下 kafka 文档异步处理流水线
  5. 技术派中用的 RabbitMQ,这里用的 Kafka,技术选型上是怎么考虑的
  6. Kafka 处理的具体流程是什么 上传一个文档就发一个消息吗

【技术派】

  1. 详细介绍一下技术派
  2. 为什么要“先写 MySQL,再删 Redis”
  3. 用户活跃度排行榜,Redis 具体存的什么数据,直接在 Redis 中更新还是 MySQL 中更新
  4. Canal 订阅并解析 MySQL binlog 具体是用来做什么的
  5. 有没有考虑过 binlog 量大的问题 当前方案的性能瓶颈在哪些方面

【MYDB】

  1. 介绍一下 MYDB
  2. 一条语句在 MYDB 中执行的流程是怎样的
  3. B+树是如何设计的 数据在实现的 B+树的结构中是怎么存放的
  4. MVCC 原理机制 主要的优点

【MySQL】

  1. 平时遇到的 SQL 问题 怎么优化的
  2. 具体的优化思路
  3. 考虑索引优化时 有哪些性能比较高的索引

反问:

评价: 项目思路挺超前的 考虑到跟 AI 相结合

面的是商业研发部 业务和广告相关

复盘: 多练习。

面试过程中回答思路不够清晰 卡顿严重 对项目中的一些实现不够了解。理清简历上项目的技术实现的链路(对哪些数据用什么技术做了什么操作)

18.传音控股一面

  1. 先做一个自我介绍。
  2. 研究生期间主要有那些课程(专业人数),你找的软件之类的工作和你的专业相关性有多大(通信专业,为什么会选择走软件,以及龙旗询问的为什么纯软件,而不是硬件呢)
  3. 掌握集合框架,你简单介绍一下你常用的一个集合是什么?它的数据结构是什么?,查询速度快是怎么做到的?

c 语言接触过没?同样的道理,在 C 语言中也有数组,通过下标去查询元素,它快速的原因和计算机的某个原理是相关的,这个原理是什么呢?数组和链表相比的查询效率是高还是低呢?

我现在给你设计了一个链表,现在这个链表的一个节点存储的是一个 int 的数据,它的数据结构是什么呢?每一个数据可以作为一个元素,这个元素肯定是通过一个数据结构来进行封装的,数据结构是什么?包含了那些元素?比如说我现在有一个链表,有 10 个元素,我想删除第四个元素的逻辑是什么,原有的链表队首加一个元素呢?数组和链表的查找一个元素的时间复杂度是多少?数据结构中,有时间复杂度和空间复杂度,什么叫空间复杂度呢?

ArrayList 它可以动态扩容是和它的空间复杂度是有关的(如何最大化优化它的空间复杂度呢-换一句话说,源码里面的动态申请内存的策略是什么呢?有具体去了解过吗?)

在平常的使用中,如何避免这种频繁的扩容呢?会导致它们的效率不断地降低,因为你不断地扩容,就需要不断地进行申请,会导致内存碎片很多,这个有没有考虑过呢?

ArrayList 元素对象,对象类型调用它的 ADD 调用对象,加入这个对象是一个深拷贝还是浅拷贝。一个对象要支持的深拷贝需要注意那些方面?

  1. 面向对象编程,解释一下你是如何进行理解面向编程的(24 分时,开始面向对象)
  2. 说一下 java 里面的反射,有用过的吗?如何通过反射来实现你说的一对多呢?你在使用 java 的框架中,你知道的哪一个框架是用到了反射的呢? 5.单例方式是什么,思想是什么,应用的场景一般用在哪里?单例方式有几种实现方式
  3. 如何创建一个线程池呢?java 中的 jdk 框架一共是几种创建方式的呢?创建了一个线程池,如何中断当前的线程,去执行另一个线程呢?ThreadLocal 你用的多吗,只是了解还是,在项目中有用到的吗,为什么会用到?ThreadLocal 的作用是什么?CopyonWriteArrayList 这里有没有用到 ThreadLocal 呢?CopyonWriteArrayList 是线程安全的吗,为什么是线程安全的呢?
  4. 你如何理解并发编程,什么叫并发编程呢,在 java 中针对并发编程,我有那些控制机制,或者类似的并发容器?如何保证 ArrayList 这种数据的完整性?有几种锁?解释一下什么叫悲观锁?
  5. 计算机网络的七层网络结构说一下?
  6. 你这个 企业级智能问答系统,这个是企业级的应用还是研究生做的导师的项目呢,项目的初始学习来源在哪?系统架构设计是你独立完成的吗?发现你写的重点是文件的上传进行独立负责的,这个你们一开始使用的是什么技术方案呢,还是后来遇到了什么瓶颈,去进行了优化呢?你说的在 deepseek 上传大文件失败的原因仅仅是因为上传的文件过大,就拒绝了的吗?使用了 MinIO 使得可以上传大文件?
  7. 你现在在哪?这个岗位在重庆你知道的吗?
  8. 大的市场,也就有大的挑战,如果你来做这个岗位的话,你有什么想法能够让公司的产品有更大的竞争力。
  9. 现在手机以及很普及了,假如你去设计一个手机的一个价值点,你有什么想法
  10. 你觉得在手机上使用 ai 能够给用户带来更大的便利性?

反问 1:后续是在重庆工作还是? 反问 2:对于应届生的培养是什么样的?

19.招银网络二面+ hr 面

参加了招商银行宣讲会 贴一下二面面经

招银二面 自我介绍

  1. 让我具体说一下我参与比较深的项目,并问了些你认为这个项目要怎么优化的问题
  2. 问了 rag 项目一些问题
  3. 把大文档切割会有什么样的问题
  4. 如果知识库太大了,匹配效率慢了,该如何解决

无八股手撕

20.天翼云 一面

30min

项目拷打:

  1. 讲一下派聪明项目的难点(我提了文件上传优化)
  2. Redis 部署
  3. kafka 的生产者消费者分别是什么?
  4. 如何运作的?
  5. 口头表达一下链表相交的解法
  6. 八股 LRU 用在操作系统里面哪个地方
  7. tcp 如何保证可靠性?
  8. 具体说一下拥塞控制
  9. 快重传具体实现
  10. Redis 三大缓存问题
  11. 操作系统的启动过程
  12. Linux 如何修改成自启动(不记得了,就说的改 etc 下的配置文件)
  13. 进程间通信方式
  14. 口述如何让 cpu 和节点资源更加平衡(答的不好,面试官想要算法,我答的宏观层面)
  15. 反问: 简历如何优化(面试官说我有个字打错了,我看了下确实,很尴尬)

部门内容 一共几轮面试 两个面试官交叉面的,问题都比较简单

21.顺丰科技二面

26 届秋招:顺丰科技二面

  1. 自我介绍
  2. mysql 慢查询的解决思路?如果索引没问题,是多表 join 引起的问题,有什么解决思路?除了分库分表呢?
  3. Kafka 怎么保证消息不丢失?消费者的手动 ack 消息是发给谁的?
  4. 队列怎么确认消费者的消息?队列挂了怎么办?开了持久化机制之后,吞吐量上不去怎么办?
  5. java 中怎么创建线程池?线程池参数、阻塞队列有哪些?利用线程池执行任务的流程是怎么样的?默认的拒绝策略是什么?核心线程不会被回收,你觉得底层的机制是怎么保证的?
  6. 你的项目中,向量数据库是怎么找到相似度比较高的 topK 个向量的?怎么判断两个向量之间的相似度?
  7. 混合检索有没有做分档分片?具体的分片方法是?目前的方案有什么问题?你觉得有没有更好的方案?
  8. 手撕:爬楼梯(动态规划秒了嘻嘻)

22.美团测开一面

美团测开一面-美团酒店机票页面核心测试组

  1. 派聪明项目难点
  2. 怎么测试检索准确率
  3. 自己的项目是开源的吗,简历上就是自己实现的部分
  4. 一个页面中有几个列表,中间插入一个广告,页面不显示会怎么去测试
  5. 问了一些零碎八股 最后反问面试官,说的应该确定方向再去深入技术,他们组要求得会测试,和基础比较扎实 哎感觉浪费机会了,再沉淀沉淀

23.美的线下终面

美的线下终面完成,开泡(hr+部门主管面)

  1. 问毕业论文题目,具体怎么实现的
  2. 问派聪明 IK 分词器为什么用这个,为什么不用 xxx(没听过)
  3. 管理的什么样的知识库,我回答是 pdfword 等文本数据。面试官应该是说的什么部门的,比如技术部门还是 hr 部门。我说没有细分部门,因为做了鉴权
  4. 为什么用的这一套技术栈感觉很奇怪 回答的是是面向企业内部的知识库,因为这个项目是分了三期完成,首先是知识库搭建,后期还要集成 mcp 最后还要加智能体,所以用的自研方便集成。面试官好像也不太满意,说当时你们对接的人懂这个 rag 吗(对不起二哥哈哈哈哈哈我包的实习)
  5. 分块怎么分的
  6. Redis 存的是什么,用的什么数据结构 一开始答得 string(脑壳已经有点麻了)反应过来发现不对。用的 hash 存用户 id 会话 uuid,uuid 和会话记录。
  7. 追问,那会话记录是生成一句存一句吗 这个不知道,扯了一下 value 的形式,然后答是的 差不多就这些

Hr 提问

  1. mbti 是什么?
  2. 你觉得自己可以改善的缺点是什么

反问评价一下,主管说感觉 rag 这个项目了解的不够深入 Hr 说成都的岗位很少很少,大部分在佛山 有点寄

24.成都后端拓尔思一面

面试官人很好,会引导,一点都不 push

  1. 只有两个鸡蛋,100 层楼,至少多少次测出不会碎的最高层(答的二分,然后让考虑一个鸡蛋的情况,答出来了,一步一步给我讲怎么做到两个鸡蛋的情况)
  2. 问简历,觉得哪个项目最难做,为什么(给我建议,体验一下好的 ai 工具)
  3. rag 的存库和检索怎么做的:(润的派聪明)chunk+embedding+elasticsearch,knn+关键词,作为 ref 构成 promot 给 LLM
  4. 大模型怎么部署的: 最开始是 Ollama+Deepseek 本地运行,后来作为学习,使用 Langchain4J 调用通义千问 api
  5. 对 ai 看法
  6. 个人通勤时间,籍贯等信息
  7. 是否想往全栈发展
  8. 实习情况 面试官解答部分: 他怎么用的 ai,建议我加强系统性学习 ai,并说明公司用 ai 的场景 简历写的很好,但是希望我尽量减少手工编码,多使用 ai 工具

反问:

公司业务场景,后端是否注重代码复用

如果我要发展全栈,是否支持前一周学习 vue:没关系,有前端业务人员,有困难可以问他

如果通过后是否会有技术面:等面试官的主管确定,不需要应该就他一面

最后:之后回复您

不知道会不会凉 😅

25.美团一二面

美团一面:

  1. 讲下项目的背景;
  2. 介绍下实习;
  3. 介绍下 Java 的 HashMap;
  4. 集合中哪些是线程安全的,哪些是线程不安全的;
  5. Java 集合中的快速失败机制有了解吗;
  6. Java 的垃圾回收器怎么判断一个对象是可回收的呢;
  7. Java 的 static 关键字主要用在哪些场景;
  8. 可以通过 Spring 注入的方式给静态变量赋值吗;
  9. 介绍下 Spring 的 AOP,有哪些实现方式;
  10. 通常用 Redis 做缓存,为什么不直接用 Map;
  11. 简单讲一讲 MySQL 索引原理;
  12. 什么情况下会出现索引失效。

美团二面:

  1. 拷打实习;
  2. AI 助手这个项目解决了什么问题,怎么拆解问题,选择技术方案的;
  3. 如果检索出来的结果都没有权限怎么办;
  4. 如何提高向量检索的召回率;
  5. 假如评测之后发现召回率不符合预期,或者说某些 case 应该召回,但实际没有召回或者排序比较靠后,有哪些办法可以优化;
  6. 在平时开发的过程中,哪些地方会用到大模型;
  7. 使用过类似于 cursor 的这些工具吗,在这个过程中有什么心得,或者说遇到了些什么问题,怎么解决;
  8. 怎么优化 SQL 性能;
  9. 索引失效的 case 有哪些;
  10. 说一下 MySQL 索引的数据结构;
  11. 讲一下事务的 ACID;
  12. 有过 JVM 调优或者解决 OOM 的经历吗;
  13. 说一下 JVM 的内存结构,以及垃圾回收的大概过程;
  14. 如果说需要并发操作集合,有什么办法去避免冲突的问题;
  15. ConcurrentHashMap 怎么保证线程安全的;
  16. 缓存的技术选型有哪些;
  17. Redis 性能比较好,得益于哪些设计;
  18. Redis 数据结构有什么特殊的实现;
  19. Spring 有哪些机制来规避循环依赖问题,能完全解决吗;
  20. 工作或者项目中有哪些环节可以通过 AI 提效。

26.阿里健康一面

阿里健康一面:

  1. 拷打实习;
  2. 有一个场景,有一个大文件 10GB,每个分片为 5MB,有 1000 个线程并发执行分片上传,怎么设计;
  3. 文件上传到 99%,网络断开了,怎么快速恢复;
  4. 大量的人上传同一个文件,怎么保证存储不浪费;
  5. 消息队列可能会有各种问题,怎么保障这个文档最终一定会被处理完成的;
  6. 这个过程如果要配置一些预警,你觉得应该配置哪几个重点的指标;
  7. 描述下整个用户发起请求查询到最后返回结果的过程;
  8. 大模型应用开发跟传统的应用开发,有哪些需要额外注意的点,有哪些不同;
  9. 大模型在输出的过程中,比如你让他按照某个格式输出,他并不一定能百分百遵循,除了 prompt 优化,还有什么其他的方式让他能够以接受的格式输出。

27.三七互娱一面(平台开发)

拷打实习(10min)

  1. Rocketmq 消息传递的顺序性
  2. 顺序消费的这个过程当中消费者组和 topic 怎么选择
  3. 说一下策略模式的原理
  4. spring 的框架源码中各个组件是否有哪里是用到策略模式的。

拷打 rag 项目(15min)

  1. 项目中文档是如何进行切分的
  2. Prompt 是怎么设计的
  3. top-k 是 20 条消息的话,是假如前 20 条(top-20)返回的结果里都没有命中那个最关键的条款,而这个关键信息恰好排在第 21 位,这种情况怎么解决
  4. 在做检索的时候,有什么提升方法提升它的检索质量
  5. 为什么选择用 JWT 做鉴权?
  6. JWT 是无状态的,那是不是只要有人拿到了这个 token,不管是谁,都可以拿着它去访问接口?
  7. 账号被禁用了,但 token 没过期怎么解决

八股(5min)

  1. Java 中的锁有哪些
  2. 在读多写少的场景下如果发生了写操作,应该用什么锁
  3. ReentrantReadWriteLock 的核心原理是什么

反问