面灵AI

去哪儿旅行 Agent 开发 AI 面试面经

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

《面试题目》

  1. G1 相比 CMS 做了哪些优化,可配置停顿目标如何实现?
  2. 期望停顿时间设置过小时会有什么影响?
  3. Java 中有哪些无锁并发方式,CAS 的实现逻辑是什么?
  4. ABA 问题会造成什么业务错误,如何处理?
  5. 联合索引字段顺序如何影响查询效率?
  6. 多个字段都是等值条件时,字段区分度如何影响实际扫描量?
  7. TCP 三次握手流程是什么,为什么不能只握手两次?
  8. QUIC 在网络切换时为什么能够保持连接?
  9. 如何设计一秒内返回最低报价的机票查询系统?
  10. 基础运价和调价规则变化时,缓存如何保持一致?
  11. 如何设计每秒一万次请求且库存有限的积分抽奖系统?
  12. 高并发下如何实现奖品加权随机并避免超发?

《参考解析》

  1. G1 停顿控制:G1 将堆划分为 Region,基于回收收益预测选择回收集合。停顿目标是软目标,设置过小会减少单次回收工作量,可能导致回收追不上分配速度并增加额外开销。
  2. CAS 与 ABA:CAS 比较内存值与期望值并原子更新;ABA 表示值虽恢复原样但中间状态已变化,可使用带版本号的引用识别。业务层还需判断状态转换是否合法。
  3. 联合索引:等值匹配覆盖完整联合键时,字段顺序通常不改变精确定位范围;但顺序仍会影响前缀复用、范围条件后的可用列、排序和其他查询,需按查询集合设计。
  4. 报价系统:预计算稳定规则,实时应用少量动态调整;按航线和日期分区缓存候选报价,并通过版本化事件更新或失效缓存。最终报价需携带规则版本,避免新旧规则混算。
  5. 抽奖系统:资格校验、概率选择和库存扣减要形成可审计链路。库存预扣必须原子化,中奖记录使用幂等键,异步落库失败进入可重试补偿流程。