京东 Java / 后端怎么准备
京东后端面试常把正确性放到零售语境:库存、价格、仓配。大促是公开可讨论的压力场景,但不要编造内部峰值。
五题覆盖超卖、价格、拆单、售后状态和值班。用你做过的交易或仓储项目来答。
京东怎么面Java后端
- 会问价格和促销的计算顺序,这是正确性题不是业务闲聊。
- 履约题要能拆单、多仓和缺货。
- 售后是长流程,状态机比下单更长。
面试阶段与知识点
第一批不把每个阶段拆成独立 URL,避免程序化重复页。阶段对应下面的题,练完再用模拟面试串起来。
- 库存与价格:大促正确性。
- 拆单履约:多仓和缺货。
- 状态机:售后比下单更长。
- 大促值班:保交易还是保履约。
值得开口练的题
每题给考察点、思路、结构化参考答案和追问。参考答案用来组织语言,面试时必须换成你自己的项目事实。
秒杀一件商品,库存扣减和下单哪个先做?
考察点
- 超卖
- 用户体验
- 回补
回答思路
常见做法是预扣库存拿号再异步下单,但必须能幂等回补,入口还要限流防打穿。
结构化参考答案
- 入口层先做限流和风控,挡住远超真实库存的请求,避免无效流量打到数据库。
- 库存用条件扣减成功后才进入订单创建流程,扣减失败快速返回售罄。
- 下单失败必须触发回补,回补逻辑幂等,防止重复回补或漏回补造成库存漂移。
- 售罄后快速失败并更新前端状态,避免用户长时间等待却最终下单失败。
面试官可能追问
- 缓存预减和 DB 谁是准绳?
- 黄牛刷接口你怎么挡?
- 回补延迟造成短暂超卖怎么收?
券、满减、会员价同时存在,价格计算顺序错了会怎样?
考察点
- 计算顺序
- 舍入
- 展示一致
回答思路
价格是交易契约,计算顺序必须版本化;前后端和售后都要引用同一套计价快照。
结构化参考答案
- 服务端是唯一计价器,前端只展示返回结果,禁止客户端自行重算促销组合价。
- 优惠叠加顺序写入定价版本号,下单时落库存价快照,售后按快照处理争议。
- 舍入规则明确到分并写进版本,避免多步折扣累积产生难以解释的误差。
- 对账任务定期抽检计价结果,发现漂移立刻停该促销并排查规则或实现 bug。
面试官可能追问
- 改顺序是否允许已下单重算?
- 套装和单品如何共用券?
- 如何测试组合爆炸?
一个订单要拆成两个仓发货,用户看到什么状态?
考察点
- 父单子单
- 部分发货
- 客服
回答思路
拆单后用户仍觉得是一单,系统内部必须是多包裹模型,父单子单职责要清晰。
结构化参考答案
- 父单负责支付、发票和售后入口,子单负责各仓仓储物流状态和运单跟踪。
- 部分发货时展示每个包裹的独立进度,禁止只用一个模糊的「配送中」状态。
- 缺货子单允许补货或部分退款,不影响已发货子单的履约和用户收货体验。
- 客服和运营工具必须能按子单查询和操作,避免只能看父单无法处理局部问题。
面试官可能追问
- 用户只要取消未发货那件怎么做?
- 运费如何分摊?
- 拆单失败回滚库存吗?
售后退款已经打出,仓库却说货没回来,你怎么设计状态?
考察点
- 资金和货的分离
- 冻结
- 对账
回答思路
货和钱要解耦,用中间态管理;不要直接改已完成退款记录,追索和冻结要有流程。
结构化参考答案
- 退款状态和收货状态是两条状态机,用关联单号串联,避免混在一个字段里改。
- 未收货的退款可走风险策略:小额可先退,大额等入库确认后再完成最终退款。
- 货没回来进入追索流程,而不是回改用户已到账的退款记录掩盖账实不符。
- 对账任务列出钱货不一致清单同步仓储,推动实物追回而不是只在财务侧平账。
面试官可能追问
- 先退后货被刷怎么办?
- 物流丢件责任怎么定?
- 如何避免客服手工改状态?
大促现场交易还在涨,履约已经积压,你保哪头?
考察点
- 用户承诺
- 入口控制
- 沟通
回答思路
零售和大促一样:接进来却送不出伤害更大;要看履约积压和用户承诺再决策。
结构化参考答案
- 先看履约积压深度、超时承诺和客服投诉,必要时关闭非核心入口或启用排队。
- 对已下单用户优先保履约和送达,对新进入流量降速或限流,避免继续堆积压。
- 同步产品和客服统一话术,暂停或下调投放,避免前端还在拉单后端已超负荷。
- 事后把限流阈值、触发条件和责任人写进大促预案,下次不用临时争论。
面试官可能追问
- 谁有权关入口?
- 如何衡量「积压」?
- 你如何向业务解释少卖?
和岗位、模拟面试一起用
资料管理里保存目标岗位 JD,模拟面试会按简历出题。点题目下的按钮会把本题带进模拟开场,仍需先绑定简历与岗位。