去哪儿旅行Java AI面试面经
- 轮次
- AI面试
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- InnoDB 在主键、唯一键和普通字段条件下执行 UPDATE 时分别如何加锁?
- RC 隔离级别下使用唯一键条件 UPDATE 的实际加锁范围是什么?
- Java 垃圾回收为什么需要分代算法?
- 如何设计支持提前一年预订且允许代他人购票的重复订单拦截?
- 最近半年如何学习并落地 AI 工具或技术?
《参考解析》
- 主键条件可直接定位聚簇索引记录;唯一键会先锁唯一二级索引记录并处理对应主键记录;普通非索引条件通常扫描并锁定更多记录,具体范围受隔离级别和执行计划影响。
- RC 下锁定已检查到的记录,InnoDB 通常不保留纯间隙锁(外键和唯一性检查等特殊场景除外);最终范围应以实际执行计划和锁监控为准。
- 新生代对象大多很快死亡,老年代对象存活更久;分代让不同生命周期对象采用不同回收策略,减少平均停顿和复制成本。
- 用用户、乘车人、航班和日期构造幂等业务键,数据库唯一约束做最终拦截,Redis 预校验降低冲突压力;订单状态变化必须在事务内保持一致。
- 应说明具体工具、使用场景、验证方法和结果指标,例如用 AI 辅助生成方案后通过单元测试、压测和代码评审验证,而不是只描述尝试过。