面灵AI

去哪儿旅行Java AI面试面经

轮次
AI面试
时间
2026-09
来源
牛客网

《面试题目》

  1. InnoDB 在主键、唯一键和普通字段条件下执行 UPDATE 时分别如何加锁?
  2. RC 隔离级别下使用唯一键条件 UPDATE 的实际加锁范围是什么?
  3. Java 垃圾回收为什么需要分代算法?
  4. 如何设计支持提前一年预订且允许代他人购票的重复订单拦截?
  5. 最近半年如何学习并落地 AI 工具或技术?

《参考解析》

  1. 主键条件可直接定位聚簇索引记录;唯一键会先锁唯一二级索引记录并处理对应主键记录;普通非索引条件通常扫描并锁定更多记录,具体范围受隔离级别和执行计划影响。
  2. RC 下锁定已检查到的记录,InnoDB 通常不保留纯间隙锁(外键和唯一性检查等特殊场景除外);最终范围应以实际执行计划和锁监控为准。
  3. 新生代对象大多很快死亡,老年代对象存活更久;分代让不同生命周期对象采用不同回收策略,减少平均停顿和复制成本。
  4. 用用户、乘车人、航班和日期构造幂等业务键,数据库唯一约束做最终拦截,Redis 预校验降低冲突压力;订单状态变化必须在事务内保持一致。
  5. 应说明具体工具、使用场景、验证方法和结果指标,例如用 AI 辅助生成方案后通过单元测试、压测和代码评审验证,而不是只描述尝试过。