易点云-Java一面面经

易点云 · Java · 一面 · 2026-04

《面试题目》

  1. 实习经历里头包括项目,你可以详细说一说,比如做过哪些内容?
  2. 你在新版 OpenAPI 升级中封装了核心接口,降低 40% 对接成本,具体做了哪些封装优化?
  3. 封装优化后,老接口是怎么修改的?遇到过哪些兼容性问题?怎么解决的?
  4. 关键字+向量语义的混合检索引擎,具体实践逻辑是什么?
  5. RAG 检索底座是如何为大模型智能排错提供上下文的?(实现方式)
  6. 浅拷贝和深拷贝的区别?
  7. 什么是反射?反射有哪些应用场景?
  8. 常见的 IO 模型有哪些?
  9. 你对线程池的了解?如何创建?工作流程是怎样的?
  10. 线程池的工作流程(追问)?
  11. 线程池的参数如何考虑和设置?
  12. 讲讲 JVM 的内存结构模型、垃圾回收算法、垃圾回收过程?
  13. 实习或工作中有没有遇到过 GC 频繁的问题?如何快速排查和解决?
  14. MySQL 的隔离级别有哪些?
  15. 这些隔离级别分别解决了哪些问题?
  16. 一条查询语句在 MySQL 中的完整执行流程是怎样的?
  17. 哪些情况会导致索引失效?
  18. 了解 Elasticsearch 吗?它适合什么场景?有哪些特点?
  19. 如果把 MySQL 数据同步到 ES(如订单模糊查询),如何保证数据一致性?
  20. Redis 有哪些使用场景?
  21. 了解哪些消息队列?它们的使用场景和优势分别是什么?

《参考解析》

  • 线程池参数设置:通常根据任务类型区分。CPU 密集型设为 CPU 核数 + 1;IO 密集型建议设为 2*CPU 核数 + 核心数,或通过压测确定最优值。
  • GC 频繁排查:使用 jstat 查看 GC 情况,通过 jmap dump 堆内存,利用 MAT 或 VisualVM 分析存活对象,重点排查是否存在大对象、内存泄漏或循环引用。
  • MySQL 索引失效:常见的有:使用 select *、对索引列进行运算或函数操作、隐式类型转换、使用 OR 连接非索引列、违背最左前缀原则、like 以 % 开头等。
  • MySQL 同步到 ES 一致性:最常用的方式是监听 MySQL 的 Binlog(如使用 Canal),通过消息队列(Kafka/RocketMQ)异步写入 ES。这种方式解耦且能保证最终一致性。
  • RAG 检索逻辑:将非结构化文档切片、向量化存入向量数据库。查询时将问题转化为向量,与向量库进行相似度匹配,检索出相关上下文,作为 prompt 的一部分输入大模型。