主题切换
大厂后端面试完整还原试题(结合AI编码工具相关背景)
一、AI辅助编码相关问题
- 借助AI生成代码后,你会如何对产出的代码开展测试工作?
- 在使用AI写代码的过程中,你会通过哪些方式、指令约束AI,保障最终代码的优雅规范?
- 一段代码的正确性该如何判定?是由你人工判断还是交给AI判断?如果依靠AI评判,你会给AI定义怎样的“代码正确”标准?
- 代码可维护性由谁负责评判把控,是你本人还是AI?具体从哪些维度判断可维护性好坏?
- 当需要实现某一业务功能时,你和AI配合的完整思考流程是什么?
二、需求拆解问题
- 拿到一份完整项目业务需求,第一步如何拆分梳理所有需求点?
- 详细说下你的需求拆解完整思路;拆解完成后若存在多种实现方案,你会从哪些维度做横向对比、完成最终选型?
- 整体项目开发时,你是如何逐层拆解业务需求的?
三、项目架构、脚手架、AOP、AI上下文优化
- 你的项目架构有参考哪些开源项目?项目脚手架是直接选用网上现成脚手架参考改造,为什么不自己从零开发脚手架?
- 不要只说AOP基础用法,结合组件化设计思维谈谈你对AOP的理解,以及在项目中的落地场景。
- 整套项目架构完整搭建思路是什么?日常使用AI写代码时,有哪些手段能够减少对话上下文带来的损耗?
四、Redis相关连环提问
- 项目中为什么引入Redis?数据库承载多大并发、数据压力会出现崩溃打崩的情况,你实际压测验证过吗?
- 若前期预估业务流量、数据体量都很小,项目同时引入Redis和MQ,会不会造成多余性能与维护负担?如何权衡取舍?
- 你是否熟悉自己项目里Redis完整配置?分别讲解核心配置参数以及各自作用。
- 项目中需要存储类Map结构数据时,你选用Redis哪种底层数据类型实现?缓存数据如何划分冷热分级存储?Redis的key目录命名、分层规则是怎么设计的?
- 基于Redis实现限流的完整思路是什么?你项目内落地的限流具体方案是什么?
- 分布式锁解决的核心问题是什么?你的项目为什么必须引入分布式锁,不加会出现什么业务问题?
- 你项目里定时轮询逻辑用MQ实现,仅依靠Redis是否也能实现定时轮询?既然Redis可以做到,为什么还要额外引入MQ?
五、数据库、连接池、Mybatis-Plus
- Druid连接池的核心作用是什么?既然项目使用Mybatis-Plus,为什么还要额外搭配Druid?
- 你了解原生Mybatis吗?Mybatis-Plus对比原生Mybatis有哪些独有的特性、优势?
六、WebSocket、HTTPS、推拉模式、消息有序
- WebSocket和HTTPS二者有什么区别?项目中引入WebSocket是为了实现什么业务功能?
- 说说你对消息推拉模式的理解,分别适合什么业务场景?
- 梳理WebSocket相关网络基础知识点,讲清楚客户端与服务端建立完整长连接的全过程。
- 在消息推送、MQ消费场景下,如何保证消息处理、推送顺序不乱序?
- 再详细讲解一次消息推拉两种模式的原理与适用场景。
七、Kafka相关
- 谈谈你对Kafka的理解,底层基于TCP通信,Kafka如何处理TCP粘包、拆包问题?
八、文件上传存储
- 项目文件存储方案做了哪些容灾兜底、异常处理方案?
- 当前项目大小文件均采用直传方式,有哪些方案优化大文件上传速度?如果用户上传中途失败,你设计了什么重试、断点恢复机制?
九、鉴权、Java版本、AI开发工具
- JWT完整认证流程是什么?讲清楚JWT底层细节、优缺点以及项目踩坑点。
- 整套项目开发为什么选择Java21,而不是Java18、Java8?
- 你日常开发会使用Vibe Coding这类AI编码工具吗?平时怎么使用它辅助开发?
- 当前开发岗位要求掌握AI相关技术知识,你都了解哪些AI开发、大模型落地相关内容?
十、性能压测
- 项目上线前你有没有独立做过压力测试?使用什么工具进行压测?压测重点关注哪些指标,如何定位性能瓶颈?
十一、项目复盘思考
- 你手上两个完整项目,在架构选型、技术落地、性能优化层面,有哪些属于你自己独立深度思考的内容?
十二、个人竞争力面试题
- 对比985院校计算机应届生,你的核心竞争力、不可替代的优势体现在哪些地方?