面灵AI

BIGO Java后端一面面经

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

《面试题目》

  1. 请介绍外汇汇款 Agent 的完整链路。
  2. 多轮对话中如何判断汇款信息已经完整?
  3. 用户说“给上次汇款的人汇 5000 美元”时,系统如何定位收款人并补全信息?
  4. 槽位提取解决了什么问题?
  5. 如何拦截模型生成的错误币种、金额或数量级?
  6. 哪些异常应自动重试,哪些情况应转人工?
  7. 为什么使用 Redis 存储验证码和 Token?Token 过期续期如何设计?
  8. 什么是缓存穿透、缓存击穿和缓存雪崩?
  9. 布隆过滤器存在误判时,如何降低业务影响?
  10. 如何用互斥锁解决缓存击穿?
  11. Redis 唯一 ID 如何设计?
  12. 如何解决秒杀库存超卖问题?
  13. 分布式环境下如何处理 Redis 或数据库多节点的数据一致性?
  14. 请介绍 RAG 的完整链路。
  15. 项目中遇到难题时,如何定位和解决?
  16. HTTP 和 HTTPS 有什么区别?HTTPS 的加密过程是怎样的?
  17. 如何求数组中所有和为 0 且不重复的三元组?

《参考解析》

  1. 汇款 Agent:先做意图识别和实体抽取,再从会话与历史交易中解析收款人;金额、币种、收款账户等关键槽位必须经过确定性规则校验。高风险操作应回显完整信息并要求用户确认,不能仅凭模型输出执行。
  2. 重试边界:网络抖动、限流和临时服务不可用可按幂等键重试;参数错误、余额不足、身份校验失败等业务错误不应盲目重试。达到次数或时间预算后进入人工处理,并保留完整调用轨迹。
  3. 缓存问题:穿透针对不存在的键,可用布隆过滤器与空值短缓存;击穿针对热点键瞬时失效,可用互斥重建或逻辑过期;雪崩是大量键同时失效,需要过期时间抖动、分批预热和服务限流。
  4. 秒杀库存:入口先限流与防重复,Redis 通过 Lua 脚本原子校验并预扣库存,订单异步落库。数据库以唯一约束和条件更新兜底,失败消息进入可重试队列并执行库存补偿。
  5. RAG 链路:文档清洗与切分后生成向量并建索引;查询阶段先改写问题,再做向量或混合检索、重排和上下文拼装;生成答案时附证据,最后用引用覆盖率和离线评测持续校验效果。
  6. HTTPS:TLS 握手通过证书链验证服务端身份,协商算法并用非对称密码安全建立会话密钥;后续数据使用对称加密传输,同时通过消息认证保证完整性。
  7. 三数之和:排序后固定一个数,左右指针寻找另外两个数。命中后移动指针并跳过重复值,整体时间复杂度为 O(n^2),额外空间可做到 O(1)