面灵AI→

高驰全栈开发一面

轮次
一面
时间
2026-10
来源
牛客网

《面试题目》

  1. 自我介绍。
  2. 实习业务背景是什么?做了哪些内容?
  3. 详细讲一下实习经历。
  4. 详细讲一下点评项目。
  5. 本地生活服务的库存秒杀怎么实现?
  6. 商品补库存时怎么处理?
  7. 数据库更新成功但 Redis 写入失败,Redis 库存比真实库存少,怎么办?
  8. Java 的锁和 JUC 并发工具怎么理解?
  9. 数据库事务和索引怎么理解?

《参考解析》

库存秒杀的核心是“少卖可以接受,超卖不行”。常见做法是 Redis 预扣库存、数据库唯一约束或条件更新兜底,再把订单写入异步化。Redis 扣减要用原子脚本,判断库存和扣减不能拆成两次调用。

补库存要考虑并发:直接 incr 可能把已经售罄的标记重新打开,最好用带版本或流水的入库记录,再按可售库存重算。数据库成功、Redis 失败时,不能假设缓存一定正确;可以用消息队列重试、binlog 补偿或定时对账,把 Redis 当缓存而不是唯一账本。

JUC 部分要能讲 synchronized 与 Lock 的差异、AQS、CAS、线程池和并发容器。事务与索引则要落到隔离级别、MVCC、联合索引和最左前缀,不要只背名词。