靠着这份面试宝典,我在今年的春招里面如鱼得水,分享一下我的京东三面上岸经验!

本文是一篇关于Java程序员面试的总结,涵盖了从基础的数据结构、JVM内存管理到高级的并发编程、分布式锁、Spring框架、数据库事务隔离级别以及面试中的实战问题。内容包括线程池、集合类、HashMap与 ConcurrentHashMap 的深入探讨,以及Redis、Elasticsearch、RabbitMQ等技术在项目中的应用。此外,还涉及到了代码审查、项目架构设计以及面试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

人人都想成为架构师,但往往只有10%的程序员能取得成功,想象很简单,但是坚持很难。
最后想给所有程序员一点建议:在日常工作中,万万不要仅局限于自己手头上的工作,因为自己负责的工作内容可能只是某系统上的“冰山一角”,这个系统是前辈们留下的财富,我们要学会怎么去利用它。这个时候,就需要我们站得高一些,看得远一点,去了解这个系统的整个经脉,揣测当初它设计的“Why?How?”,换做自己应该会怎么做,这样或许你将会离架构师更近一步。

京东一面

  1. 自我介绍

  2. 常用的数据结构有哪些?并大说了一些操作的时间复杂度

  3. 数组从下标最大的删与最小的删有什么区别?

  4. 介绍主要用到的技术(技术栈)

  5. 介绍一下集合类

  6. list和set的区别?以及各个实现类和底层实现

  7. CopyOnWriteList的特点及实现

  8. 创建一个线程有几种方式?项目中怎么创建的?

  9. 讲一下线程池

  10. 你们使用的任务拒绝策略是那种?

  11. 线上服务器最多可以创建多少个线程?

  12. 线程的状态有哪些?(线程的生命周期)

  13. 跟线程相关的方法介绍一下

  14. HashSet的底层实现

  15. 介绍下HashMap和CurrentHashMap

  16. HashMap线程不安全会导致什么问题?

  17. 为什么1.8版本中会将链表转为红黑树?

  18. HashMap解决Hash冲突使用的什么方式?

  19. HashMap的hash函数讲一下(如何确定槽位)

  20. JVM的内存区域

  21. 那个区域不会发生内存溢出?

  22. JVM运行时内存?

  23. 新生代老年代讲讲

  24. JVM为什么分新生代老年代?

  25. 垃圾回收算法讲讲

  26. 类加载过程讲一下

  27. 双亲委派模型讲一下

  28. Spring的启动流程

  29. SpringBean的作用域

  30. SpringBoot的特点

  31. 相比于SpringMVC有什么好用的地方?

  32. MySQL的事务隔离级别

  33. 讲讲Java中的锁?

  34. 重入锁怎么实现的?

  35. Synchronized讲讲使用及原理

  36. Synchronized的优缺点?

  37. retryLock了解吗?

  38. Java里的轻量级锁?

  39. 索引了解么?balabala

  40. InnoDB还能有什么索引

  41. 为什么用索引?项目中怎么用的?

  42. 讲一下B+树的实现

  43. B+树与B树有什么区别?

  44. MySQL的锁哪几种?

  45. 行锁的实现?

  46. 你们项目中用到Redis都是怎么用的?

  47. 分布式锁你们是怎么做的?

  48. 为什么不升级Redis版本?

  49. Redis的内存淘汰策略 LRU?

  50. 讲讲项目为什么要用Hystrix?

京东二面

  1. 画项目架构图

  2. 分布式任务调度系统是怎么实现的?

  3. ElasticSearch都用过那些查询方式

  4. 如何做数据同步的?(MySQL到ES)

  5. 如何做CodeReview的?

  6. SpringCould都用了那些组件?

  7. 什么场景用到断路器(Hystrix)

  8. 你是如何理解分布式锁的?

  9. Redis分布式锁你们是怎么用的?

  10. Redis你都用到那些命令?

  11. Synchronized讲讲

  12. 说说轻量级锁,无锁的方式(CAS ABA问题?)

  13. 加锁我们是为了解决什么样的问题?

  14. 说说volatile关键字

  15. 了解什么叫不可变类么?或者是叫不可变对象?

  16. final的含义是什么?

  17. 成员变量都是final修饰的话,如何进行赋值?

  18. 如何关闭线程?

  19. 手撕代码。牛客题霸上的原题,可以去看看:NC22合并两个有序的数组

  20. 我有8件事要做,最要要同意返回处理结果,每件事要进行异步的方式去做。你怎么完成这个需求

  21. 我需要在项目启动时,将一些配置加载到内存中,你有什么方式能解决?

京东三面

  1. 自我介绍

  2. 讲讲做的项目

  3. RabbitMQ优缺点讲一下?

  4. 分享一下你这个项目的挑战性吗?

  5. 项目中有遇到什么问题么?

  6. 讲讲SpringCould中用到的组件吧?

  7. Feign为什么效率低?

  8. 为什么大部分服务对外不提供的接口都是HTTP的?(没太理解什么意思)

  9. 讲讲项目中为什么会把MySQL升级为ES?

  10. CodeReview你都是怎么做的?

  11. list跟Set有什么差别?

  12. HashMap跟CurrentHashMap有什么区别?

  13. 讲讲Redis的数据结构

  14. 问了问我现在的待遇,有什么想问我的?

我的面试经验汇总

下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从面试必问的说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!
有需要的朋友点击这里自取就好了,希望资料对你有帮助!

SpringCloud

Redis

JVM

MySQL

Zookeeper

Kafka

Dubbo

spring

Rabbitmq

springboot

最后

由于文章篇幅有限,PDF的内容又很多,全部手敲下来很累…所以需要阅读阅读学习的,大家“一件三连后:“查看下方””即可拿到手之后自己学习吧,博主真的打字打累了。

有需要的朋友点击这里自取就好了,希望资料对你有帮助!
预祝大家前程似锦,工作顺利!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值