Java 后端开发实习生一面面经
完整信息
本篇目录
已约二面。
个人感觉最压力的一面。深挖项目+多场景题+多算法题
以下是面经
一、项目
1. RAG 项目是否属于练手项目?
2. RAG 项目中的关键词重写模块是如何做对比实验的?
2.1 关键词重写前后如何对比?
2.2 召回率的判断标准是看是否返回结果,还是看结果是否符合人工标准答案?
2.3 是通过召回结果数量判断,还是通过匹配度/相关性判断?
2.4 如何具体量化关键词重写对召回效果的提升?
2.5 如何判断重写后的整体结果是变好还是变差?
2.6 是否只是手动构造少量 case 做对比测试?
2.7 150 条评测数据是否通过脚本批量跑验证?
3. 项目中的 MCP 工具调用如何防止注入恶意命令?
3.1 纯规则拦截存在覆盖不到的漏判场景,是否有更完善的方案?
3.2 MCP 调用前后如何做权限校验和结果校验?
4. 项目中的租约锁机制是如何实现的?
4.1 是否是主线程执行业务,单独开子线程续约?
4.2 续约线程和任务线程分离时,续约线程如何感知业务线程是否正常运行?
4.3 后续是否改成主线程手动续锁?
4.4 如果主线程卡死,无法执行续锁逻辑,任务卡住怎么处理?
4.5 是否是消费完成之后再续锁?
4.6 执行流程中具体在哪些阶段进行续锁?
5. 项目中的滑动窗口 + 摘要压缩模块如何处理关键信息丢失问题?
5.1 如果摘要压缩丢失用户名、实体名等关键上下文,导致回答错误,如何规避?
5.2 如果对话中途丢失关键信息,系统如何处理?
5.3 摘要压缩的核心目的是什么?
5.4 摘要压缩主要是为了降低存储成本,还是提升推理速度?
6. RAG 评测集如何标注标准答案,如何判断模型输出是否正确?
6.1 是否依靠大模型做语义打分,而不是简单字符串匹配?
7. 领券系统中使用 RocketMQ 延迟消息时,如果组件只支持固定延时,无法自定义精确过期时间,怎么解决?
7.1 如果堆积大量延迟消息,RocketMQ 底层是如何实现延迟消息的?
7.2 如果从零实现延迟队列,核心设计思路是什么?
7.3 维护延迟队列后,如何定时取出到期消息?
7.4 到期消息如何触发推送,让消费方正常消费?
8. 订单 15 分钟超时自动关闭有哪些实现方案?
8.1 如果不能使用成熟中间件的延迟消息功能,还有哪些方案?
8.2 如果不用数据库轮询,也不用中间件延迟队列,还能如何实现?
二、八股
1. 微信电脑端扫码登录如何设计实现?
1.1 手机完成确认登录后,电脑端如何感知二维码状态变更?
2. 单点登录 SSO 是什么?
3. 多线程场景下,如何等待所有子线程执行完毕后,主线程再继续执行?
4. 多线程并发执行 i++ 自增,如何保证线程安全?
4.1 i++ 为什么不是线程安全的?
4.2 有哪些具体实现方式可以保证原子性?
4.3 如果加锁性能开销较大,有没有更轻量级的方案?
4.4 CAS 场景下 Java 是否有现成工具类可以使用?
5. 多线程共用同一个变量 i,但每个线程自增互不干扰,线程 A 加 5 次、线程 B 加 10 次,各自计数独立互不影响,怎么实现?
6. synchronized 的锁标记存放在对象的什么位置?
6.1 对象头中具体是哪个区域存储锁相关信息?
7. MySQL 联合索引为什么存在最左前缀原则?
7.1 联合索引 `(A, B)` 下,`where B = 1 and A = 2` 能否走索引?
7.2 为什么 where 条件中字段顺序调换不影响索引生效?
7.3 建索引前如何判断索引是否有收益?
7.4 字段区分度的标准是什么,如何量化判断?
8. SQL 注入如何防护?
8.1 PreparedStatement 的原理是什么?
8.2 为什么 PreparedStatement 能防止 SQL 注入?
9. Redis 和 MySQL 双写数据时,除了 Cache Aside,还有哪些一致性方案?
10. Redis 是多线程吗?
11. Redis 过期 Key 的删除策略有哪些?
12. 正则表达式中,如何匹配连续 10 位数字?
13. 分库分表了解吗?
13.1 水平分表和垂直分表分别是什么?
13.2 单表数据迁移到分库分表时,如何保障迁移数据不出错?
13.3 原代码读写单表,如何改造适配分库分表?
14. 短信短链接怎么生成?
三、算法
1. 算法题:北京飞广州,支持直达和中转,求最低票价路线。
2. 算法题:遍历全国所有城市机场各一次,要求总票价最低,判断属于什么问题,怎么解决。
3. 算法题:全村人员按年龄排序,如何选择最快的排序算法。
4. 算法题:不使用库函数计算根号 8。
4.1 除了牛顿迭代法,还有哪些方法可以计算平方根?
5. 算法题:你觉得哪些冷门算法设计很精妙?
6. 算法题:int 数组求 TopK 大元素,排除全排序和暴力遍历,有哪些解法?
6.1 二分法能否适用于无序数组求 TopK?
四、AI Coding
无
本篇目录
当前问题0171
- 01
RAG 项目是否属于练手项目?
- 02
RAG 项目中的关键词重写模块是如何做对比实验的?
- 03
关键词重写前后如何对比?
- 04
召回率的判断标准是看是否返回结果,还是看结果是否符合人工标准答案?
- 05
是通过召回结果数量判断,还是通过匹配度/相关性判断?
- 06
如何具体量化关键词重写对召回效果的提升?
- 07
如何判断重写后的整体结果是变好还是变差?
- 08
是否只是手动构造少量 case 做对比测试?
- 09
150 条评测数据是否通过脚本批量跑验证?
- 10
项目中的 MCP 工具调用如何防止注入恶意命令?
- 11
纯规则拦截存在覆盖不到的漏判场景,是否有更完善的方案?
- 12
MCP 调用前后如何做权限校验和结果校验?
- 13
项目中的租约锁机制是如何实现的?
- 14
是否是主线程执行业务,单独开子线程续约?
- 15
续约线程和任务线程分离时,续约线程如何感知业务线程是否正常运行?
- 16
后续是否改成主线程手动续锁?
- 17
如果主线程卡死,无法执行续锁逻辑,任务卡住怎么处理?
- 18
是否是消费完成之后再续锁?
- 19
执行流程中具体在哪些阶段进行续锁?
- 20
项目中的滑动窗口 + 摘要压缩模块如何处理关键信息丢失问题?
- 21
如果摘要压缩丢失用户名、实体名等关键上下文,导致回答错误,如何规避?
- 22
如果对话中途丢失关键信息,系统如何处理?
- 23
摘要压缩的核心目的是什么?
- 24
摘要压缩主要是为了降低存储成本,还是提升推理速度?
- 25
RAG 评测集如何标注标准答案,如何判断模型输出是否正确?
- 26
是否依靠大模型做语义打分,而不是简单字符串匹配?
- 27
领券系统中使用 RocketMQ 延迟消息时,如果组件只支持固定延时,无法自定义精确过期时间,怎么解决?
- 28
如果堆积大量延迟消息,RocketMQ 底层是如何实现延迟消息的?
- 29
如果从零实现延迟队列,核心设计思路是什么?
- 30
维护延迟队列后,如何定时取出到期消息?
- 31
到期消息如何触发推送,让消费方正常消费?
- 32
订单 15 分钟超时自动关闭有哪些实现方案?
- 33
如果不能使用成熟中间件的延迟消息功能,还有哪些方案?
- 34
如果不用数据库轮询,也不用中间件延迟队列,还能如何实现?
- 35
微信电脑端扫码登录如何设计实现?
- 36
手机完成确认登录后,电脑端如何感知二维码状态变更?
- 37
单点登录 SSO 是什么?
- 38
多线程场景下,如何等待所有子线程执行完毕后,主线程再继续执行?
- 39
多线程并发执行 i++ 自增,如何保证线程安全?
- 40
i++ 为什么不是线程安全的?
- 41
有哪些具体实现方式可以保证原子性?
- 42
如果加锁性能开销较大,有没有更轻量级的方案?
- 43
CAS 场景下 Java 是否有现成工具类可以使用?
- 44
多线程共用同一个变量 i,但每个线程自增互不干扰,线程 A 加 5 次、线程 B 加 10 次,各自计数独立互不影响,怎么实现?
- 45
synchronized 的锁标记存放在对象的什么位置?
- 46
对象头中具体是哪个区域存储锁相关信息?
- 47
MySQL 联合索引为什么存在最左前缀原则?
- 48
联合索引 `(A, B)` 下,`where B = 1 and A = 2` 能否走索引?
- 49
为什么 where 条件中字段顺序调换不影响索引生效?
- 50
建索引前如何判断索引是否有收益?
- 51
字段区分度的标准是什么,如何量化判断?
- 52
SQL 注入如何防护?
- 53
PreparedStatement 的原理是什么?
- 54
为什么 PreparedStatement 能防止 SQL 注入?
- 55
Redis 和 MySQL 双写数据时,除了 Cache Aside,还有哪些一致性方案?
- 56
Redis 是多线程吗?
- 57
Redis 过期 Key 的删除策略有哪些?
- 58
正则表达式中,如何匹配连续 10 位数字?
- 59
分库分表了解吗?
- 60
水平分表和垂直分表分别是什么?
- 61
单表数据迁移到分库分表时,如何保障迁移数据不出错?
- 62
原代码读写单表,如何改造适配分库分表?
- 63
短信短链接怎么生成?
- 64
算法题:北京飞广州,支持直达和中转,求最低票价路线。
- 65
算法题:遍历全国所有城市机场各一次,要求总票价最低,判断属于什么问题,怎么解决。
- 66
算法题:全村人员按年龄排序,如何选择最快的排序算法。
- 67
算法题:不使用库函数计算根号 8。
- 68
除了牛顿迭代法,还有哪些方法可以计算平方根?
- 69
算法题:你觉得哪些冷门算法设计很精妙?
- 70
算法题:int 数组求 TopK 大元素,排除全排序和暴力遍历,有哪些解法?
- 71
二分法能否适用于无序数组求 TopK?