互联网大厂Java面试实战:JVM、Spring Boot、微服务、Redis、Kafka与AI场景三轮追问全解析
互联网大厂Java面试实战:JVM、Spring Boot、微服务、Redis、Kafka与AI场景三轮追问全解析
一、故事背景
周一上午,某互联网大厂会议室里,气氛严肃得像线上事故复盘。
面试官姓严,江湖人称“严工”,说话不快,但每个问题都像精准投递的监控告警;应聘者叫谢飞机,简历写得花团锦簇,项目经验横跨电商、内容社区、AIGC、支付风控、企业SaaS、智慧医疗,技术栈几乎覆盖了 Java 生态半壁江山。
谢飞机刚坐下,就把水杯放歪了,紧张地笑了笑:“严工您好,我准备好了,今天状态还行,JVM要是别问到火葬场那一步,我应该能撑住。”
严工推了推眼镜:“我们今天按真实业务场景来。你面的是互联网大厂 Java 后端开发,问题会从业务建模、系统设计、性能优化,一路问到 AI 应用集成。三轮面试,循序渐进。能答的你就答,答不清楚也没关系,但别乱吹。”
谢飞机点头如捣蒜:“这个我擅长,尤其是后半句。”
二、第一轮:电商秒杀与高并发基础能力
业务背景:公司正在做一个大型电商平台,包含商品详情、库存扣减、订单创建、支付链路、缓存加速和消息异步解耦。面试官希望先看候选人对 Java 基础、Spring 体系、数据库与缓存的理解。
问题1:如果让你用 Spring Boot 做一个秒杀系统的订单服务,你会怎么设计整体技术方案?
谢飞机:“这个我会。前面肯定是 Nginx 和网关,Java 后面用 Spring Boot。请求进来先做限流,然后商品信息放 Redis,库存也放 Redis,抢到资格之后走消息队列,比如 Kafka 或 RabbitMQ,异步创建订单,数据库用 MySQL。连接池一般用 HikariCP,ORM 可以 MyBatis 或 JPA。这样就比较标准,也比较大厂。”
严工点点头:“回答得还行,至少主链路抓住了。那我再往里问。”
问题2:为什么现在很多 Spring Boot 项目默认更推荐 HikariCP,而不是 C3P0?
谢飞机:“因为 HikariCP 更快,性能更好,配置也没那么重。C3P0 是比较早期的方案,很多老项目里能见到,但现在新项目一般 HikariCP 比较多。”
严工点头:“不错,结论是对的。你可以继续补充一下它在连接获取延迟、资源消耗、维护成本上的差异,不过先算你过。”
谢飞机一脸得意:“谢谢严工,我今天前两题应该还算热机成功。”
问题3:秒杀场景里,Redis 缓存和 MySQL 数据一致性怎么处理?
谢飞机沉默两秒:“这个……一般是更新数据库以后删缓存,或者先删缓存再更新数据库。反正缓存一致性是个经典问题。要不就加延时双删,再加消息通知,或者订阅 binlog。大厂一般都比较高级。”
严工看了他一眼:“你说到了关键词,但没有讲清楚适用边界。没关系,我们继续。”
问题4:Spring MVC 和 Spring WebFlux 分别适合什么场景?秒杀系统该怎么选?
谢飞机:“Spring MVC 是传统同步阻塞模型,WebFlux 是响应式非阻塞。MVC 比较成熟,生态也最完整。WebFlux 在高并发、I/O 密集、长连接这种场景有优势,比如流式返回、网关、聊天、推送、部分 AI 接口。秒杀系统的话,我觉得核心交易链路还是 MVC 比较稳,周边高并发查询或者流式接口可以考虑 WebFlux。”
严工微微点头:“这题答得不错,知道不是所有高并发都硬上响应式。”
三、第二轮:内容社区+AIGC平台的微服务追问
业务背景:公司准备做一个内容社区与 AIGC 平台,包含用户发帖、评论、点赞、审核、推荐、向量检索、AI 问答、文档问答与智能客服。这里会涉及微服务、消息队列、搜索、向量数据库、RAG、Agent 和可观测性。
问题1:如果把内容社区拆成微服务,你会怎么拆?会用到哪些组件?
谢飞机:“用户服务、内容服务、评论服务、点赞服务、审核服务、推荐服务、搜索服务、AI 服务,这些基本都得拆。注册发现可以用 Eureka 或 Consul,服务调用可以 OpenFeign,网关以前 Zuul 也很多,现在 Spring Cloud Gateway 更常见。容错可以用 Resilience4j。部署上 Docker 加 Kubernetes。链路追踪用 Jaeger 或 Zipkin,监控用 Prometheus、Grafana,日志进 ELK。”
严工点头:“不错,分层和基础设施比较完整。”
问题2:Kafka、RabbitMQ、ActiveMQ、Pulsar 在这种平台里分别可能用在哪些地方?
谢飞机:“Kafka 适合高吞吐日志、行为埋点、推荐流转;RabbitMQ 适合比较灵活的业务消息,比如审核通知、订单类事件;ActiveMQ 和 JMS 更偏传统企业系统;Pulsar 我理解是多租户、存算分离能力更强,大数据和多场景统一消息平台也能用。Redis Pub/Sub 就比较轻量,适合简单广播,但可靠性和堆积能力没有专业 MQ 强。”
严工点头:“这题可以,分工思路比较清楚。”
问题3:如果做 AI 知识库问答,你怎么理解 RAG、向量化、Embedding 模型、Milvus/Chroma/Redis 向量检索?
谢飞机挠了挠头:“RAG 就是让大模型先查资料再回答,避免乱说。向量化就是把文本变成向量,Embedding 模型就是专门干这个的。Milvus 和 Chroma 是向量数据库,Redis 也能做向量检索。大概流程就是文档加载、切片、向量入库、用户提问后做语义检索,再把结果拼到提示词里给模型回答。这个方向我做过一点,主要是调接口和搭框架。”
严工盯着他:“你说的是流程,但没展开关键细节,比如召回策略、切片策略、重排、幻觉控制、会话记忆边界。先记一下,后面答案解析你自己回去补。”
谢飞机小声说:“这个环节我一般交给更聪明的同事。”
问题4:Spring AI、MCP、Agent、Google A2A、工具执行框架,这些概念你怎么串起来理解?
谢飞机:“Spring AI 更像 Java 生态接大模型的统一抽象;MCP 是模型上下文协议,方便模型调用外部工具;Agent 是让模型具备规划和执行能力;Google A2A 我理解是代理之间协作;工具执行框架就是把工具注册起来,统一调用。整体上就是从单次聊天,升级成能理解上下文、能调工具、能做复杂工作流的系统。”
严工点头:“概念串联还可以,至少没把 Agent 说成前端按钮。”
四、第三轮:支付风控与企业级架构深挖
业务背景:公司还在做支付与金融服务,需要高安全、高可用、可审计。这里要考察 JVM、数据库事务、序列化、安全、CI/CD、测试、兼容性与架构演进能力。
问题1:支付回调接口怎么保证幂等?如果重复通知多次怎么办?
谢飞机:“幂等的话一般要有业务唯一单号,比如支付流水号或者订单号。处理前先查状态,已经成功了就别重复扣减。数据库层面也可以加唯一索引。再配合 Redis 做短期幂等控制。总之核心是‘一笔业务只成功一次’。”
严工点头:“不错,这个回答是合格的,而且比较实用。”
问题2:你怎么理解 JVM 在大促高峰期间的风险点?比如 Full GC、内存泄漏、线程池打满这些问题。
谢飞机:“JVM 这个比较重要。像堆设置不合理、对象创建太多、缓存打太大、线程池堆积、连接没关,都可能引发问题。线上一般会看 GC 日志、堆内存、线程状态,必要时 dump 分析。Java 8、11、17 的 GC 和一些默认行为也会有差异。高峰期如果 Full GC 频繁,接口 RT 就会飙升。”
严工点头:“这题答得中规中矩,还算靠谱。”
问题3:如果系统里同时存在 REST、gRPC、Dubbo、WebSocket,你会怎么选择?
谢飞机:“REST 适合对外开放接口,配合 Swagger/OpenAPI 好管理;gRPC 更适合内部高性能 RPC,特别是多语言和 Protobuf;Dubbo 在 Java 内部服务治理也很常见;WebSocket 适合实时消息,比如聊天、交易播报、音视频互动信令。具体还是看调用场景和历史包袱。”
严工:“这题答得不错,知道技术选型不是宗教战争。”
谢飞机立刻接话:“我一直主张框架平权,谁发工资我支持谁。”
问题4:你做过哪些测试和发布保障?如果让你保障一个关键金融服务上线,你会怎么做?
谢飞机:“单元测试会用 JUnit 5、Mockito、AssertJ,老项目可能有 TestNG、PowerMock。接口和回归可以做自动化,前端链路能配 Selenium,复杂业务流程也能用 Cucumber 写 BDD。上线前走 Git 分支管理,Jenkins 或 GitLab CI、GitHub Actions 自动构建,打 Docker 镜像,发 Kubernetes。数据库变更用 Flyway 或 Liquibase。日志用 SLF4J + Logback 或 Log4j2,指标接 Micrometer,再进 Prometheus 和 Grafana。”
严工点点头:“这题可以,工程化意识还行。”
问题5:最后一个开放题。如果让你设计一个“求职招聘 + AI简历优化 + 企业文档问答”的 SaaS 平台,你怎么做整体架构?
谢飞机深吸一口气:“这个平台我会拆成招聘职位、简历中心、面试管理、企业知识库、AI 对话服务、检索服务、权限中心这些模块。后端还是 Java 为主,Spring Boot 做主服务,部分高并发 AI 流式问答可以 WebFlux。数据层关系型库放核心交易,Elasticsearch 做搜索,Redis 做缓存,Milvus 或 Chroma 做向量检索。AI 这块做 RAG,把企业制度、JD、面经、简历样本加载进知识库,再用 Agent 做复杂工作流,比如简历诊断、岗位匹配、面试题生成。安全上用 Spring Security + OAuth2/JWT,企业单点可接 Keycloak。部署走 Docker、Kubernetes,监控、日志、链路追踪全套补齐。”
严工合上笔记本:“思路是有的,但一些细节你明显还浮在表面,比如权限模型、租户隔离、向量召回质量、提示词治理、数据脱敏、成本控制。不过今天先到这里吧。”
谢飞机小心翼翼地问:“那我这是凉得比较均匀,还是还有抢救空间?”
严工站起身:“你先回去等通知。有基础,也有表达能力,但深度还得补,尤其是缓存一致性、RAG 工程化、JVM 调优和金融级稳定性设计。”
谢飞机抱起电脑:“好的严工,我回去先把‘延时双删为什么不总是万能’背熟,再把 AI 幻觉按住。”
五、面试题详细答案解析
下面把上面每个问题的标准思路详细拆开,帮助小白按“业务场景 → 技术目标 → 技术选型 → 落地方案”的顺序学习。
1. 秒杀订单服务的整体技术方案怎么设计?
业务场景
电商秒杀的特点是:
- 瞬时并发非常高
- 热点商品访问集中
- 用户希望响应快
- 后台系统不能被瞬间打垮
- 库存不能超卖
- 订单、支付、通知需要解耦
典型架构
-
接入层
- Nginx / CDN 做静态资源分发
- API Gateway 做统一路由、鉴权、限流
- 可结合 Spring Cloud Gateway 或历史 Netflix Zuul
-
应用层
- 使用 Spring Boot + Spring MVC
- 秒杀资格校验、库存预扣、用户校验、风控拦截
-
缓存层
- 商品详情、活动信息、库存缓存放 Redis
- 本地热点缓存可加 Caffeine 或 Ehcache
- 分布式场景也可考虑 Hazelcast,旧系统可能见到 Memcached
-
异步解耦
- 下单请求进入 Kafka/RabbitMQ
- 异步创建订单、发送通知、记录埋点
- 大吞吐日志链路更适合 Kafka
- 复杂业务路由和死信处理常见 RabbitMQ
-
数据层
- 核心订单数据落 MySQL
- ORM 可选 MyBatis、JPA、Hibernate、Spring Data JDBC
- 连接池优先 HikariCP
- 老项目中可能见到 C3P0
-
数据库变更治理
- 使用 Flyway 或 Liquibase 管理 DDL 变更
为什么交易主链路通常优先 Spring MVC?
- MVC 生态成熟
- 中间件兼容最好
- 线程模型更容易被团队掌握
- 对典型 CRUD 和交易类接口足够稳定
哪些地方适合 WebFlux?
- AI 流式输出
- 长连接推送
- 高 I/O 聚合查询
- 网关层、流式聊天接口、部分 WebSocket 辅助场景
2. HikariCP 和 C3P0 有什么区别?
核心结论
新项目优先 HikariCP,原因通常是:
- 性能更好
- 获取连接更快
- 配置更精简
- 社区使用更广
- 与 Spring Boot 集成默认更自然
对比说明
-
HikariCP
- 轻量
- 启动和运行性能优秀
- 连接借还开销低
- 更适合现代 Spring Boot 项目
-
C3P0
- 历史悠久
- 老系统兼容多
- 配置项相对繁杂
- 性能通常不如 HikariCP
面试答法
不要只说“快”,要补充:
- 连接池实现更轻量
- 性能测试里借连接延迟更低
- 内存和 CPU 消耗更友好
- 默认配置更接近生产可用
3. Redis 和 MySQL 一致性怎么处理?
先记住一个原则
缓存和数据库很难做到绝对强一致,工程上追求的是:
- 最终一致
- 高可用
- 可接受的数据短暂延迟
常见策略
-
旁路缓存(Cache Aside)
- 读:先查缓存,没有再查数据库并回填缓存
- 写:先更新数据库,再删除缓存
-
为什么是“更新库后删缓存”更常见? 因为如果先删缓存,再更新数据库,在并发读下可能又把旧值写回缓存。
-
延时双删
- 更新数据库
- 删除缓存
- 延迟一小段时间再次删除缓存
- 用于降低并发下脏数据残留概率
- 但它不是万能方案
-
消息队列补偿
- 数据变更后发 MQ 消息
- 消费端异步删缓存或刷新缓存
-
Binlog 订阅
- 订阅数据库 binlog
- 数据变更后触发缓存修正
- 适合复杂一致性治理场景
秒杀场景建议
- 库存预扣多在 Redis 完成
- 最终订单和真实库存扣减在数据库落地
- 通过 MQ 异步削峰
- 做好补偿和对账机制
4. Spring MVC 和 Spring WebFlux 如何选择?
Spring MVC
- 同步阻塞
- 基于 Servlet 生态
- 适合大部分企业业务系统
- 成熟稳定,排障简单
Spring WebFlux
- 响应式、非阻塞
- 适合高 I/O、流式交互、长连接、聊天、AI输出
- 需要团队理解响应式编程模型
选型建议
- 核心交易链路:通常优先 MVC
- 流式AI对话 / 网关聚合 / 实时推送:可考虑 WebFlux
- 不要为了“高级”而全站响应式
5. 内容社区微服务怎么拆?
推荐拆分
- 用户服务
- 内容服务
- 评论服务
- 点赞收藏服务
- 审核服务
- 推荐服务
- 搜索服务
- AI 问答服务
- 通知服务
- 权限与租户服务
常用技术
- Spring Cloud
- Eureka / Consul:注册发现
- OpenFeign:服务间调用
- Resilience4j:限流、熔断、重试
- Docker + Kubernetes:容器化部署
- Micrometer + Prometheus + Grafana:指标监控
- ELK Stack:日志检索
- Jaeger / Zipkin / New Relic:链路追踪/APM
为什么要拆?
- 模块边界清晰
- 独立扩缩容
- 团队并行开发
- 故障隔离
- 不同模块采用不同技术实现
6. Kafka、RabbitMQ、ActiveMQ、Pulsar、Redis Pub/Sub 怎么选?
Kafka
适合:
- 高吞吐日志
- 埋点行为流
- 推荐数据流
- 大数据消费链路
- 与 Hadoop / Spark / Flink 等协作
RabbitMQ
适合:
- 业务异步消息
- 复杂路由
- 死信队列
- 延迟队列方案
- 订单通知、审核流转
ActiveMQ / JMS
适合:
- 传统企业系统
- 老项目集成
- 标准化 JMS 场景
Pulsar
适合:
- 多租户
- 存算分离
- 统一消息平台
- 流处理和多场景并存
Redis Pub/Sub
适合:
- 轻量广播
- 实时但不强可靠的通知
- 内部简化信号传递
面试重点
不要只背定义,要说清“吞吐、可靠性、顺序性、路由复杂度、历史系统兼容”这些维度。
7. RAG、向量化、Embedding、Milvus/Chroma/Redis 向量检索怎么理解?
基础流程
-
文档加载
- 读取 PDF、Word、网页、知识库文档
- Java 里可借助 POI 等工具处理 Office 文档
-
文档切片
- 按段落、语义、标题结构切分
- 切得太大召回不准,太小上下文不够
-
Embedding 向量化
- 用 OpenAI/Ollama 等 Embedding 模型把文本转向量
-
向量存储
- 存入 Milvus / Chroma / Redis Vector
- 建立向量索引
-
查询召回
- 用户提问也转向量
- 做相似度检索
- 可加关键词检索、混合检索、重排
-
提示填充
- 把召回内容拼进 Prompt
-
模型生成
- 大模型基于资料回答,减少幻觉
为什么 RAG 有价值?
- 企业私有知识可接入
- 模型知识可随文档更新
- 回答可追溯到资料片段
- 更适合企业文档问答、智能客服、知识助手
工程难点
- 切片策略
- 召回质量
- 重排模型
- 幻觉控制
- 会话记忆边界
- 敏感数据脱敏
- 成本控制
幻觉怎么控制?
- 只允许基于召回材料回答
- 召回为空时明确说“不知道”
- 输出引用来源
- 使用多阶段校验
- 在 Agentic RAG 中引入工具检查与结果验证
8. Spring AI、MCP、Agent、Google A2A、工具执行框架如何串起来?
Spring AI
- Java 生态接入大模型的统一开发抽象
- 可管理 Prompt、ChatClient、Embedding、VectorStore、Tool Calling
MCP
- 模型上下文协议
- 让模型能以标准方式调用工具、读取上下文、扩展外部能力
Agent
- 不只是“回答问题”
- 还能做任务拆解、规划步骤、调用工具、判断结果、继续执行
Google A2A
- 可理解为代理之间的协作思路
- 适合多个智能体之间分工
工具执行框架
- 统一注册工具
- 统一参数规范
- 标准化调用
- 统一错误处理、审计和扩展
企业落地方向
- 智能客服
- 企业文档问答
- 多步骤审批助手
- 招聘/简历诊断助手
- 知识库搜索与工作流自动化
9. 支付回调幂等怎么设计?
核心目标
无论支付平台重复通知多少次,业务系统只能成功处理一次。
常见方案
-
业务唯一键
- 支付流水号
- 商户订单号
- 第三方交易号
-
数据库唯一约束
- 防止重复插入
-
状态机控制
- 订单状态从“待支付”只能变为“已支付”
- 已支付状态不重复执行扣库存、发券等动作
-
Redis 幂等标记
- 做短期防重
- 降低重复请求冲击
-
日志与审计
- 记录每次回调
- 便于对账和问题排查
注意
幂等不是“接口返回一样”,而是“多次执行结果对业务无副作用”。
10. JVM 在高峰期有哪些风险点?
常见风险
- Full GC 频繁
- 老年代占满
- 内存泄漏
- 大对象分配过多
- 线程池打满
- 数据库连接池耗尽
- MQ 消费堆积
- Direct Memory 或 Metaspace 问题
线上排查工具与方法
- GC 日志分析
jstack看线程堆栈jmap/ dump 分析堆内存- APM 观察 RT、吞吐、错误率
- 结合 Micrometer、Prometheus、Grafana 监控
- ELK 查异常日志
Java 8 / 11 / 17
- 企业中这几个版本最常见
- 新版本在性能、GC、语言特性、容器适配方面更完善
- 但升级要看依赖兼容性
11. REST、gRPC、Dubbo、WebSocket 怎么选?
REST
- 对外 API 标准化最好
- 易调试
- 适合开放平台
- 可配 Swagger/OpenAPI
gRPC
- 高性能
- 基于 Protobuf
- 多语言友好
- 适合内部服务、高频调用
Dubbo
- Java 生态成熟 RPC
- 服务治理能力强
- 很多传统和大型 Java 微服务体系仍在用
WebSocket
- 双向通信
- 实时推送
- 适合聊天、在线教育互动、交易播报、游戏互动、音视频信令
Jersey / RESTEasy / Retrofit
- Jersey、RESTEasy 常用于 JAX-RS / Jakarta EE 风格 REST
- Retrofit 常作为客户端调用工具
12. 如何做测试与发布保障?
测试金字塔
-
单元测试
- JUnit 5
- TestNG
- Mockito
- PowerMock
- AssertJ
- JUnit Pioneer
-
集成测试
- Spring 容器启动测试
- 数据库、缓存、MQ 联调验证
-
UI/端到端测试
- Selenium
-
业务验收/BDD
- Cucumber
发布链路
- Git / SVN 管理版本
- Jenkins / GitLab CI / GitHub Actions 持续集成
- Maven / Gradle / Ant 构建
- Docker 打包
- Kubernetes 发布
- 灰度、回滚、配置审计
变更治理
- Flyway / Liquibase 管理库表变更
- MapStruct 做对象映射
- Lombok 减少模板代码
- Apache Commons / Guava 提升开发效率
- JSch 可用于远程脚本执行
- POI 可处理报表与文档导入导出
13. “求职招聘 + AI简历优化 + 企业文档问答” SaaS 平台怎么设计?
业务模块
- 用户与企业管理
- 职位发布
- 简历管理
- 面试流程管理
- 权限中心
- 知识库中心
- AI 对话服务
- 检索与推荐服务
- 通知中心
技术架构建议
- 核心服务:Spring Boot
- 流式AI接口:Spring WebFlux
- 权限与认证:Spring Security、OAuth2、JWT、Keycloak
- 服务治理:Spring Cloud、OpenFeign、Resilience4j
- 数据层:
- MySQL/PostgreSQL 存交易数据
- Elasticsearch 做全文检索
- Redis 做缓存
- Milvus/Chroma/Redis Vector 做向量检索
- 序列化:
- Jackson / Gson:普通 JSON
- Protobuf / Avro:高性能传输和流式数据
- 消息系统:Kafka / RabbitMQ
- 可观测性:Micrometer、Prometheus、Grafana、ELK、Jaeger、Zipkin
- 部署:Docker、Kubernetes
AI 能力设计
- Spring AI 接模型
- 文档加载后做向量化
- RAG 做企业制度、岗位 JD、面经问答
- Agent 做复杂工作流:
- 简历评分
- 岗位匹配
- 面试题生成
- 聊天会话内存用于保留上下文,但要控制边界
- 对敏感信息做脱敏,避免模型误泄露
多租户SaaS要点
- 租户隔离
- 权限模型
- 成本核算
- 审计日志
- 数据合规
- 模型调用限额
- 向量库隔离策略
六、文中涉及技术栈归类速记
为了方便小白复习,下面把文中相关技术按类别再串一次:
- Java基础与平台:Java SE 8/11/17、JVM、Jakarta EE
- 构建工具:Maven、Gradle、Ant
- Web框架:Spring Boot、Spring MVC、Spring WebFlux、Micronaut、Quarkus、Play Framework、Struts
- 数据库ORM:Hibernate、MyBatis、JPA、Spring Data JDBC、HikariCP、C3P0、Flyway、Liquibase
- 测试:JUnit 5、TestNG、Mockito、PowerMock、AssertJ、Selenium、Cucumber、JUnit Pioneer
- 微服务:Spring Cloud、Eureka、Zuul、Consul、gRPC、Apache Thrift、Kubernetes Client、OpenFeign、Resilience4j、Dubbo
- 安全:Spring Security、Apache Shiro、JWT、OAuth2、Keycloak、Bouncy Castle
- 消息队列:Kafka、RabbitMQ、ActiveMQ、JMS、Pulsar、Redis Pub/Sub
- 缓存:Redis、Ehcache、Caffeine、Hazelcast、Memcached、Spring Cache
- 日志监控:Log4j2、Logback、SLF4J、Tinylog、Prometheus、Grafana、Micrometer、ELK、New Relic、Jaeger、Zipkin
- 模板与API:Thymeleaf、FreeMarker、Velocity、JSP/JSTL、Swagger/OpenAPI、Spring HATEOAS、Jersey、RESTEasy、Retrofit
- 序列化:Jackson、Gson、Protobuf、Avro
- CI/CD:Jenkins、GitLab CI、GitHub Actions、Docker、Kubernetes
- 大数据:Hadoop、Spark、Flink、Cassandra、Elasticsearch
- 版本控制与工具库:Git、SVN、Apache Commons、Guava、Lombok、MapStruct、JSch、POI
- AI工程化:Spring AI、Google A2A、MCP、RAG、Agent、聊天会话内存、工具执行框架、提示填充、向量化、语义检索、向量数据库、Embedding 模型、客户端-服务器架构、工具调用标准化、扩展能力、Agentic RAG、文档加载、企业文档问答、复杂工作流、智能客服系统、AI幻觉、自然语言语义搜索
- 其他技术:R2DBC、WebSocket
七、总结
这场面试里,谢飞机并不是完全不会,而是典型的“基础有、术语熟、复杂问题深挖不够”。这也是很多互联网大厂 Java 面试者的真实状态:
- 八股能背一点
- 项目能讲一点
- 真到系统设计、稳定性治理、AI 工程化落地时,就容易发虚
如果你准备大厂 Java 面试,建议按下面路线复习:
- 先打牢基础
- Java、JVM、并发、集合、IO、网络
- 再吃透主流框架
- Spring Boot、Spring MVC、Spring Cloud、MyBatis/Redis/Kafka
- 补上工程化
- 测试、CI/CD、监控、日志、容器化、数据库变更
- 最后拔高
- 微服务治理、缓存一致性、分布式事务、AI/RAG/Agent 工程化
严工最后那句“回去等通知”,其实也是很多候选人的分水岭:不是你完全不行,而是你离“大厂可用”之间,还差一点真正的深度。
更多推荐

所有评论(0)