京东 Java 二面面经

最近参加了京东的 Java 岗位二面,整体时长大约 60 分钟。相比一面更偏向基础知识点考察,二面更加注重 项目经验的深度挖掘对技术选型的思考,同时也会穿插一些进阶的八股文内容。

一、项目深挖

面试官首先围绕我之前提到的高并发下订单处理的项目,进行了深入追问,重点包括:

  1. 系统架构设计为什么选择分布式架构,服务拆分的依据是什么?如果订单服务出现单点故障,如何保证高可用?数据库与缓存双写一致性的具体实现方案。
  2. 高并发处理如何保证下单接口的幂等性?高并发写入数据库时如何避免热点行锁问题?使用了哪些限流、降级、熔断手段?限流算法是如何实现的(令牌桶/漏桶)?
  3. 消息队列项目中是否用过消息中间件?选择 Kafka、RocketMQ 还是 RabbitMQ 的原因。如何保证消息不丢失、不重复消费?消息堆积时的解决办法。
  4. 监控与运维系统运行过程中的监控指标如何设计?如何排查线上接口延迟或超时问题?

可以明显感觉到二面对于 实际场景下的问题处理能力 要求更高,面试官会从一个点不断深入,直到确认你是否真的在项目中思考和解决过。

答案都在:

全网最全面的java八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/0n9XOd

二、Java 基础与八股文延伸

除了项目,面试官还会抽查一些核心知识点,但问题会更有深度:

  1. Java 内存模型(JMM)happens-before 原则有哪些?synchronized 与 volatile 在内存语义上的区别。
  2. 集合与并发容器ConcurrentHashMap 的分段锁到 CAS 的演进过程。CopyOnWriteArrayList 的底层机制,适用场景和缺点。
  3. 多线程与锁机制ThreadLocal 的原理以及可能导致的内存泄漏问题。AQS 的实现原理,ReentrantLock、公平锁与非公平锁的实现区别。Condition 的使用场景。
  4. JVM 调优线上遇到 Full GC 频繁的问题,如何排查?内存泄漏的常见场景,如何利用工具(如 jmap、MAT)定位。CMS 和 G1 的对比,为什么生产上更多选择 G1。

三、数据库与缓存

数据库和缓存部分的问题更多聚焦在 实际设计与优化

  1. 数据库如何设计表结构避免大事务?分库分表后的主键生成策略有哪些?MySQL InnoDB 的行锁与间隙锁区别,什么时候会出现死锁?
  2. 缓存Redis 的持久化方式 RDB 与 AOF 的差异。如何避免 Redis 热点 key 问题?Redis 集群中的一致性哈希与槽分配机制。

四、系统设计与场景题

面试官给了几个开放性问题:

  1. 如何设计一个秒杀系统,保证库存不超卖?
  2. 如果下单量暴增,数据库写入撑不住,怎么优化?
  3. 如果 Redis 挂掉,如何保证系统可用性?

这些题目考察的不是单一知识点,而是你是否能结合 缓存、数据库、消息队列、分布式锁 等技术,设计出合理的解决方案。

五、总结

京东二面的整体感觉是:

  • 比一面更注重 项目实践能力,会从细节不断深入。
  • 八股文不再是单纯背诵,而是考察 原理与实际场景的结合
  • 面试官很看重 架构设计能力,尤其是在高并发、高可用场景下的解决方案。

因此,准备京东二面时,不仅需要对 Java 基础、集合、多线程、JVM、数据库、缓存有较深理解,还要能够结合实际项目,给出合理的设计思路和取舍依据。

#发面经攒人品#
全部评论
同学,瞅瞅我司,医疗独角兽,校招刚开,名额有限,先到先得,我的主页最新动态,绿灯直达,免笔试~
1 回复 分享
发布于 09-16 08:19 广东
这么好的帖子怎么没热度
点赞 回复 分享
发布于 09-16 10:13 北京

相关推荐

09-30 18:33
门头沟学院 Java
0820投递0906一面1. 实习期间遇到的挑战以及解决方式2. 比如我们要用来实现一个乐观锁的功能,这个有研究过去做吗?比如现在Redis里面有一条数据,我们现在要去更新这条数据,在分布式场景下可能有问题,考虑用Redis实现一个乐观锁,让更新实现有序,最终数据库能够保证数据一致性,应该怎么去做?3. Java里面提到的开闭原则,你对开闭原则的理解是怎样的?可以大概描述一下这个原则吗?4. Java中基本数据类型和包装类型的变量,初始值分别是什么?5. 现在定义两个包装类型变量,给这两个变量赋相同的值,然后做“==”比较,结果为什么会不一样?6. Java中volatile关键字有什么作用?7. synchronized关键字在方法上具体怎么实现?对于一个类的普通方法和静态方法,加synchronized锁分别锁住的是什么?8. 假设有一张用户老表A,因模型升级适配新业务场景新建了一张用户新表B,需要将老表A的原始数据迁移到新表B,且老表A数据量特别大(比如上百亿数据),让你开发数据迁移程序,具体编码思路是先干什么、再干什么?9. 不考虑数据写入问题,只考虑将1000亿数据的用户老表A迁移到新表B,能不能通过MySQL的主从复制来做呢?10. 在分批迁移数据时,为了保证每批次拉取数据的执行效率都比较高,ID应该怎么来?轮询时为了保证数据的准确性和查询性能,应该怎么处理?比如每批次拉100条数据,但ID可能不是连续的,这种情况代码层面应该怎么解决?11. 现在要统计用户表(数据量特别大)中用户昵称相同的数据,即统计出现重复的用户昵称以及每个重复昵称出现的次数,应该怎么做?12. 你平时自己有在持续做一些技术学习和研究吗?13. 实习的工作节奏大概是什么样的?0909二面,比较像主管面,面试时间就25分钟1. 自我介绍。2. 你自己还接触过哪些方面(的技术或工作内容)?3. 你觉得比较有亮点、有代表性的一些需求或技术问题是什么?请大概介绍一个。4. 你原来接触过电商领域相关的内容吗?比如电商常用的商品等领域。5. (假设现在有一个任务)如果现在领导给你的任务是,一个基本的应用(比如商品相关应用)在单机情况下,面对高并发量时压力过大,你觉得应该按照什么样的维度或者标准去处理(来应对高并发、减轻单机压力)?6. 现在前台有一个页面,加载的时候用了5秒钟才显示出来,你觉得可能是什么原因导致的?该如何排查?7. 你现在在学习一些新的技术,大概会通过什么样的途径去学?8. 你最近关注或学习的一些技术性方向有哪些?9. 你觉得自己个人的优势和劣势是什么?0920线下hr面,简单跟面试官聊了半小时,都是比较常规的问题,说7个工作日出结果0930收到意向函,来个国庆礼物!
查看22道真题和解析
点赞 评论 收藏
分享
评论
点赞
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务