Java 全栈开发一面面经
完整信息
本篇目录
<a href="https://www.nowcoder.com/creation/subject/b8fb04662b3e4a3698d028cff4f643f2" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#实习面试记录#</a> 一、面试基本情况
- 面试形式:腾讯会议线上面试
- 参与人员:HR + 技术面试官
- 面试时长:约30分钟
- 前置流程:HR先沟通实习时间、薪资、到岗情况,随后自我介绍,进入正式技术面试
- 面试侧重:高并发、服务可用性、工程化落地、项目底层细节,没有过多询问基础八股
二、面试提问 & 作答情况(完整还原)
(一)第一个高并发核心项目
- MySQL for update 行锁升级表锁场景
- 面试官提问:哪些情况会导致 for update 行锁升级为表锁?
- 我的作答:仅答出查询未走索引这一种情况,回答不完整。
- 暴露问题:对 MySQL 锁机制、行锁失效场景掌握不全面,底层原理不扎实。
- Redis 聚合方案设计与容错
- 面试官提问:
1. 项目中为什么选用 Redis 做数据聚合?
2. 若 Redis 宕机,是否会出现数据问题?如何保障稳定性? - 我的作答:坦诚承认该模块存在设计短板,说明当前业务非核心、容错要求不高,但没有给出完整的兜底、降级、容错方案。
- 暴露问题:只实现功能,缺少高可用、故障兜底、异常防护的工程化思考。
- Redis ZSet 排行榜并发控制
- 面试官提问:使用 ZSet 实现排行榜时,如何做并发控制?
- 我的作答:仅模糊提到「业务标识+用户ID加Redis锁」,无法清晰说明锁的实现方式、加锁时机、释放逻辑、防死锁方案。
- 暴露问题:懂概念但无落地细节,并发安全实操薄弱。
- RabbitMQ 死信队列自动维护方案
- 面试官提问:死信队列如何做自动化维护、异常治理?
- 我的作答:完全答不上来,缺乏消息队列工程运维、自动化处理经验。
(二)第二个响应式/LLM 服务项目
- Spring WebFlux 响应式设计
- 面试官提问:项目中 Spring WebFlux 如何实现响应式编程?
- 我的作答:如实说明项目并未做完整响应式改造,仅用 WebFlux 实现了 SSE 流式推送能力。
- Resilience4j 工程防护
面试官针对性提问两大工程化核心问题:
1. Resilience4j 如何配置使用?
2. LLM 远程调用超时/报错时,如何通过 Resilience4j 做服务保护、稳定性兜底?
- 我的作答:回答薄弱,缺少熔断、降级、重试、超时策略的落地细节。
- 面试官核心考察点:第三方接口调用的可用性保障、服务容错工程化能力。
(三)通用基础问题
1. AI 工具使用习惯、日常开发辅助方式
2. Git 使用熟练度:分支管理、代码冲突合并与解决流程
三、面试官正面评价(个人亮点)
1. 项目讲述清晰流畅:对自己做过的项目业务逻辑、整体架构、功能模块非常熟悉,能完整讲清项目逻辑。
2. 态度真诚踏实:遇到不会的技术问题不瞎编、不硬凑,如实坦诚自身短板,学习态度和技术心态被认可。
四、面试官核心改进建议
当前项目整体功能落地完整,但高并发场景优化、服务可用性、工程化容错深度不足。
建议:对高并发项目做深度深挖,补齐容错、兜底、高可用、并发安全的工程化细节,让项目从“实现功能”升级为“稳定可上线的工程级项目”。
五、本次面试暴露的核心短板(总结)
1. 数据库锁机制底层不扎实:行锁转表锁场景掌握不全。
2. Redis 高可用 & 并发安全薄弱:聚合容错、分布式锁落地细节缺失。
3. 消息队列工程化不足:死信队列自动化运维、异常处理完全空白。
4. 服务容错组件不熟:Resilience4j 熔断降级、第三方接口防护无落地经验。
5. 整体缺少工程化思维:只会实现业务功能,缺少高并发、高可用、故障兜底的上线级思考。
六、后续针对性补强方向
1. 补齐 MySQL 锁机制:完整掌握行锁变表锁所有场景、InnoDB 锁原理。
2. 重构 Redis 项目亮点:补充分布式锁完整实现、宕机降级、缓存容错、数据一致性方案。
3. 学习 MQ 工程化:死信队列自动重试、死信归档、异常消息治理。
4. 吃透 Resilience4j:超时、重试、熔断、降级实战,适配 LLM 远程调用场景。
5. 给现有高并发项目补全工程化细节:容错、兜底、限流、并发安全、异常治理,彻底拔高项目含金量。<a href="https://www.nowcoder.com/creation/subject/eb05ef0c3aad4981af85e1f84c8d3db3" class="subject font-green" target="_blank" data-nc-subject-type="0" data-nc-subject-tag-id="0">#牛客AI配图神器#</a>
本篇目录
当前问题0113
- 01
HR先沟通实习时间、薪资、到岗情况,随后自我介绍,进入正式技术面试
- 02
哪些情况会导致 for update 行锁升级为表锁?
- 03
项目中为什么选用 Redis 做数据聚合?
- 04
若 Redis 宕机,是否会出现数据问题?如何保障稳定性?
- 05
使用 ZSet 实现排行榜时,如何做并发控制?
- 06
死信队列如何做自动化维护、异常治理?
- 07
项目中 Spring WebFlux 如何实现响应式编程?
- 08
Resilience4j 如何配置使用?
- 09
LLM 远程调用超时/报错时,如何通过 Resilience4j 做服务保护、稳定性兜底?
- 10
AI 工具使用习惯、日常开发辅助方式
- 11
AI 工具使用习惯、日常开发辅助方式
- 12
Git 使用熟练度:分支管理、代码冲突合并与解决流程
- 13
Git 使用熟练度:分支管理、代码冲突合并与解决流程