阿里云CIO线一面

阿里巴巴 · 前端开发工程师 · 一面 · 湖北 · 2026-05

《面试题目》

📍面试公司:阿里云

  1. 🕐面试时间:5.14
  2. 💻面试岗位:JAVA研发

❓面试问题:

  1. 抛开 AI 部分,讲讲整个服务架构是什么样的?包括前端怎么用、后端怎么用、前后端怎么交互?
  2. Redis 是存短期内容吗?是用于做缓存还是其他用途?
  3. 了解 Spring Boot 的整个启动原理吗?Spring Boot 打的包结构是怎么样的?服务是怎么启动的?
  4. 整个项目的代码是自己写的,还是主要由 AI 全部自动生成的?
  5. 没有 AI 之前,你自己有没有单独搞过纯手搭的项目?
  6. 两个 AI agent 的主要分工是什么?介绍一下对话 agent 和运维 agent 的核心能力?
  7. 有没有做多轮循环的控制?如果 agent 一直循环调用工具会怎么处理?
  8. RAG 的 TOKEN 调优省了 50%,是生成 TOKEN 还是输入 TOKEN?怎么计算的这个数值?做了哪些具体的调优工作?
  9. 上下文压缩有什么策略?如何避免过滤掉有用信息、留下噪音数据?
  10. 对于长期有效的信息,会做什么特殊处理把它留存下来吗?
  11. 平均检索度 80% 以上,有没有自己构建评估集?评估集是怎么处理的?处理了多少数据?
  12. AI agent 用的哪个大模型来做的?
  13. 觉得 Claude 好在哪里(从模型本身和 agent 设计两个方面)?对它的 agent 整个运行原理了解吗?
  14. 从你的角度看,大模型本身重要,还是整个 agent 的架构设计更重要?
  15. 本地生活服务平台的主要内容有哪些?开发过程中有没有碰到在线问题调试、节点故障之类的问题?
  16. 假设线上发现内存不停地缓慢增长,不确定是哪行代码出的问题,你会怎么排查?有办法定位到具体代码吗?
  17. JVM 里面主要的组件有哪些?JVM 的体系了解吗?能讲一下 JVM 的内存模型吗?
  18. 本地方法栈主要是用于什么用途的?
  19. 方法区空间出现预警了,最大的可能是什么原因?有办法回收方法区的垃圾吗?运行时怎么处理方法区空间不足的问题?
  20. 了解 classloader(类加载器)吗?通过 classloader 有办法处理动态类加载过多的问题吗?
  21. 了解 Tomcat 吗?看过整个设计吗?

《参考解析》

  1. Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。

  2. Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。

  3. JVM与GC:JVM内存模型:堆(对象分配,GC管理)、方法区(类信息、常量池)、虚拟机栈(栈帧/局部变量/操作数栈)、本地方法栈、程序计数器。GC算法:标记-清除(内存碎片)、标记-整理(无碎片,但移动对象)、复制(新生代)。G1按Region划分堆,预测停顿时间。

  4. RAG与大模型:RAG(检索增强生成)流程:文档切片→向量化(Embedding)→存向量数据库→检索时将query向量化→TopK语义检索→将相关文档拼入prompt→LLM生成。优化:混合检索(语义+关键词)、重排序Rerank、查询改写、上下文压缩。评估:召回率(relevant docs retrieved/total relevant)、精确率、Answer相关性。