Skip to content

京东两年经验社招面经

前几天,我在公众号分享了一篇京东校招面经:京东研发岗校招一二面面经

有朋友提到想要看看京东的社招面经,于是我整合了多位求职者分享的京东社招面经,筛选并优化了其中的高频、核心问题,给准备京东面试的球友提供一个参考。校招和社招都适用!

多提一嘴:网上京东 Java 社招面经分享真的少,我也是找了几篇零碎的面经,加上一位成功拿到京东 Offer(两年工作经验) 读者的帮助才完成这篇。

一面 (技术面,通常侧重基础)

面试时长通常在 50-60 分钟左右。

自我介绍和项目

  • 请先做个自我介绍。
  • 详细介绍一下你参与的核心项目,你在其中扮演的角色,负责了哪些模块?项目是否已上线?
  • 项目中遇到的最大技术难点是什么?是如何解决的?

Java 核心基础

  • 集合:
    • ArrayList, LinkedList, HashSet 的底层数据结构、主要区别和适用场景?
    • HashSet 如何保证元素唯一性且其迭代顺序通常不固定?
    • 请详细说明 HashMap 在 JDK 1.7 和 1.8 中的主要区别(底层结构、put 流程、哈希冲突处理、扩容机制等方面的优化)。
    • HashMap 的 put 方法的完整流程是怎样的?
    • ConcurrentHashMap 在 JDK 1.8 中做了哪些优化?其 put 流程和保证线程安全的机制是什么?
  • JVM:
    • 请简述 JVM 的类加载过程(加载、验证、准备、解析、初始化)。
    • 双亲委派模型是什么?它带来了哪些好处?
    • 常见的垃圾回收器有哪些(如 CMS, G1)?它们各自的特点和适用场景是什么?你项目中实际使用的是哪种?
    • 描述一下 G1 垃圾回收器的工作原理和主要阶段。
    • 什么情况下会触发 Young GC 和 Full GC?
  • 并发编程:
    • 创建线程有哪几种方式?RunnableCallable 接口有什么区别?
    • 请介绍一下 Java 线程池的核心参数及其含义(corePoolSize, maximumPoolSize, keepAliveTime, workQueue, threadFactory, rejectedExecutionHandler)。你在项目中是如何配置和使用线程池的?
    • synchronizedReentrantLock 的区别和底层实现原理是什么?
    • ThreadLocal 的工作原理是什么?它可能导致什么问题(如内存泄漏)?如何避免?

MySQL

  • 在哪些情况下 MySQL 索引会失效?请举例说明。
  • 请解释联合索引的“最左前缀匹配原则”。
  • 如果基于 (a, b, c) 三列创建了联合索引,查询条件 WHERE a = ? AND b = ? AND c = ? 会如何使用这个索引?如果查询条件是 WHERE a = ? AND c = ? 呢?

Redis

  • 你在项目中是如何使用 Redis 的?主要用它来解决什么问题?
  • Redis 常用的持久化方式(RDB 和 AOF)有哪些?它们各自的优缺点和适用场景是什么?线上环境通常如何配置?
  • 如何保证 Redis 缓存和数据库的数据一致性?(例如:Cache Aside Pattern, Read/Write Through, Write Back, 延时双删等策略的原理和优缺点)

Spring

  • 请解释一下 Spring 的 IoC (控制反转) 和 AOP (面向切面编程) 的核心思想。
  • 在你的项目中,AOP 主要应用在哪些场景?

消息队列

  • 请简述消息队列的基本工作原理(生产者、消费者、Broker)。
  • 你项目中使用的 MQ 是什么?其消息模型是怎样的(如点对点、发布订阅)?
  • 对比 Kafka、RabbitMQ 等主流 MQ 的主要区别和选型考量。
  • 如何保证消息的顺序性消费?(特定场景下)

算法(可能)

手撕算法可能会考察一两题,也可能直接不考察。

下面是几道真题:

  • 实现链表的反转(对应Leetcode 206. 反转链表)。
  • 给定一个整数数组,要求将所有偶数移动到数组前面,奇数移动到后面,同时保持偶数之间、奇数之间的相对顺序不变。

二面 (技术面,通常侧重项目深度、架构设计与问题解决能力)

面试时长通常在 50-60 分钟左右,面试官可能会更资深。

项目

针对一面聊到的项目,深入提问实现细节、遇到的难点、技术选型的原因、性能优化、线上问题排查经历等。可能会要求画出系统架构图。

Java

  • ReentrantLock 的底层实现原理是什么?(AQS)
  • 请详细解释 AQS (AbstractQueuedSynchronizer) 的工作原理,它内部维护了哪些核心数据结构(如 CLH 队列、条件队列)?
  • CAS (Compare-and-Swap) 的原理是什么?它可能存在什么问题(如 ABA 问题)?如何解决?
  • 请解释乐观锁和悲观锁的概念及其实现方式。

MySQL

  • 请解释 MySQL 的事务特性 (ACID)。
  • 说明 MySQL 的四种事务隔离级别及其可能解决的问题(脏读、不可重复读、幻读)。
  • 什么是幻读?在可重复读(Repeatable Read)隔离级别下,InnoDB 是如何避免幻读的?(MVCC + Next-Key Lock)
  • MySQL 索引底层为什么通常选用 B+ 树结构?它相比 B 树有哪些优势?

Redis

  • Redis 的 Set 和 ZSet (Sorted Set) 底层数据结构分别是什么?它们的主要区别和适用场景?
  • Redis 集群技术选型
  • 线上 Redis 实例发生缓存雪崩、缓存穿透、缓存击穿时,分别是什么现象?你有什么解决方案?

分布式与微服务

  • 如何设计一个高可用的分布式锁服务?
  • 在微服务架构下,如何保证跨服务的事务一致性?(如 TCC, SAGA, 可靠消息最终一致性等方案)

系统设计 (可能)

京东面试可能会考虑系统设计题,下面是几道真题:

  • 设计一个高并发的秒杀系统关键环节。
  • 设计一个实时更新的排行榜系统(如直播打赏榜)。
  • 海量数据处理问题(如两个各有 50 亿 URL 的文件,找出共同的 URL;Top K 问题等)。

算法(可能)

手撕算法可能会考察一两题,也可能直接不考察。

下面是几道真题:

HR 面 (通常在技术面通过后进行)

面试时长通常较短,10-30 分钟左右。

  1. 自我介绍 (可侧重软技能和职业素养)
  2. 过往经历回顾:
    • 实习/工作经历中最有成就感/最具挑战性的一件事是什么?你是如何做的?
    • 为什么选择离开上一家公司?
  3. 个人特质与动机:
    • 你认为自己最大的优点和缺点是什么?
    • 你的职业规划是怎样的?
    • 为什么选择京东?为什么对我们这个部门/业务感兴趣?
  4. 文化与期望:
    • 你期望在一个什么样的团队工作?
    • 对加班怎么看?
    • 期望薪资是多少?
  5. 其他情况:
    • 目前还有在看其他公司的机会吗?拿到 Offer 了吗?
    • 最早可以入职的时间?
    • (社招可能会问职级、薪资、绩效等细节)
  6. 反问环节

总结与建议

  • 基础扎实是前提: Java 核心(集合、并发、JVM)、数据库(MySQL、Redis)几乎是必考项,需要深入理解原理。
  • 项目经验是关键: 不仅要能清晰描述项目,更要能深入阐述其中的技术难点、解决方案、个人贡献和思考。一定要提前准备好被“拷打”细节!
  • 并发与分布式是加分项: 对锁、事务、缓存一致性、消息队列、RPC 等有深入理解和实践经验会非常有优势。
  • 算法能力不能少: 常见的链表、数组、二分查找、排序等题目需要熟练掌握,海量数据处理思路也要有所了解。
  • 沟通表达很重要: 清晰、有条理地表达自己的想法,展现良好的沟通和协作能力。
  • 针对性准备: 根据京东的业务特点(电商、零售、物流、金融、健康等),思考自己的技能和经验如何与之匹配。

更新: 2025-05-05 14:03:48
原文: https://www.yuque.com/snailclimb/mf2z3k/zcynu0dn8x29okrv

Java 后端面试知识库