京东科技AI后端研发一面(日常实习)

京东科技 · AI后端研发实习生 · 一面 · 2026-04

面试题目

项目深挖

  1. 介绍项目背景、整体架构、扮演的角色、遇到的痛点 & 难点以及解决方案
  2. 为什么选这个项目?自己实现了哪些部分?
  3. 项目难点在哪?
  4. 秒杀和防止超卖是加锁,锁的东西是什么?有模拟测试过吗?
  5. 本地缓存怎么保证数据一致性?TTL 设置了多久?Caffeine 了解多少?

实习经历

  1. 随便挑一个实习介绍背景 + 负责部分 + 遇到的困难
  2. 实习公司的主要产品是什么?用的什么大模型?为什么不直接调 API 而是要设计这样的架构?
  3. Agent 的 memory 模块是怎么做的?用的什么数据库?为什么没用 xxx?
  4. 实习还有什么其他难点吗?

八股(约 10 min)

  1. 了解哪些 JDK 版本?
  2. Java 内存模型(JMM)
  3. RPC 框架用过哪些?
  4. HTTP 协议了解哪些?
  5. 还对后端哪块比较了解?

参考解析

秒杀防超卖加锁

  • 锁的对象通常是库存 key(如 Redis 中的商品库存字段),可用 DECR 原子操作或 Lua 脚本保证原子性。
  • 也可使用数据库行锁(SELECT ... FOR UPDATE)或乐观锁(版本号)防止超卖。
  • 压测建议用 JMeter 或 wrk 模拟并发,观察库存是否跌为负数。

本地缓存一致性 & Caffeine

  • 本地缓存与数据库一致性常见方案:TTL 过期淘汰 + 数据库更新时主动失效(发 MQ 通知各节点)。
  • Caffeine 是基于 W-TinyLFU 算法的高性能本地缓存,支持 expireAfterWrite / expireAfterAccess
  • TTL 时长视业务容忍度而定,秒杀场景通常设置较短(几秒到几十秒),或结合版本号做细粒度失效。

Agent Memory 模块

  • 常见分层:短期记忆(当前会话上下文,存内存/Redis)、长期记忆(历史摘要,存向量数据库如 Milvus/Qdrant)。
  • 选型理由需结合检索方式:语义检索选向量库,结构化查询选关系型DB,混合场景可组合使用。
  • 面试时说清楚为什么不用某个库,一般从性能、运维成本、团队熟悉度角度回答。

不直接调大模型 API 而自建架构

  • 直接调 API 缺乏路由、限流、多模型切换、成本控制、审计日志等能力。
  • 自建网关层可统一鉴权、做 Prompt 管理、支持 fallback 切换模型,提升稳定性。

Java 内存模型(JMM)

  • JMM 定义了线程如何通过主内存与工作内存交互,解决可见性、有序性、原子性问题。
  • 核心关键字:volatile(可见性+禁止指令重排)、synchronizedhappens-before 规则。

RPC 框架

  • 常见:Dubbo、gRPC、Spring Cloud OpenFeign、Thrift。
  • 回答时可对比协议(HTTP2 vs TCP)、序列化方式(Protobuf vs JSON)、服务发现机制。

HTTP 协议要点

  • 重点掌握 HTTP/1.1 vs HTTP2(多路复用、头部压缩)、HTTPS 握手流程、常见状态码、keep-alive、幂等性方法区分。