滴滴Java开发一面面经

滴滴 · Java开发 · 一面 · 2026-04

《面试题目》

  1. 介绍一下你自己
  2. 介绍一下你的实习
  3. 你实习中的工单流转权限校验怎么理解
  4. 取消和派单接口并发,这个模块的规模怎么样,代码版本控制是怎么样的
  5. RAG流程
  6. 你是怎么去检测大模型回答质量的
  7. 项目中的兜底锁是怎么理解的,为什么这么做
  8. 你的这个责任链模式具体讲一下用在你的项目中的什么场景
  9. 怎么理解规则树,具体讲一下这个规则树的流程
  10. 我如果要新增“新用户优惠活动”或者其他业务活动之类的,怎么在你这个项目里面去进行扩展
  11. springboot自动装配机制
  12. 怎么理解starter
  13. 说一下慢查询,以及解决方法
  14. 责任链模式和装饰器模式
  15. mq怎么保障可靠性的
  16. 讲一下ThreadLocal,内存泄露,在线程池中除了手动remove,还能怎么防止

《参考解析》

  • Spring Boot 自动装配:通过 spring.factoriesAutoConfiguration.imports 扫描配置类,配合 @Conditional 注解实现按需加载。Starter 则是将相关依赖和配置封装的“开箱即用”组件。
  • 责任链与装饰器:责任链用于请求处理流(如过滤器链),侧重于处理者的自动传递;装饰器用于在不改变原有对象结构的前提下动态增加功能。两者在扩展性上各有侧重。
  • MQ 可靠性:需从生产者发送确认(Confirm模式)、Broker持久化(刷盘)、消费者手动ACK三个阶段保障消息不丢失。
  • ThreadLocal 内存泄露:除了手动 remove(),还可以使用 InheritableThreadLocal 或在线程池中使用 TransmittableThreadLocal 来传递上下文,核心是及时清理引用避免强引用链导致GC无法回收。
  • 慢查询优化:先通过 EXPLAIN 分析执行计划,检查是否命中索引;其次优化SQL语句(减少回表、减少JOIN);必要时考虑分库分表或引入缓存。