本文主要是介绍京东Java后台开发岗社招面试经验分享,4面的面经!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# 前言
正好最近我一朋友面试京东回来,和我聊了他的面试经过,最后经过四面成功斩获offer!下面我把他所得经验毫无保留的分享给大家!希望对正准备面试小伙伴们能有所帮助!!!
![京东Java后台开发岗社招面试经验分享,4面的面经](https://upload-images.jianshu.io/upload_images/26078969-9ad06cd7fdcd7ef5?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# 京东一面
1、自我介绍
2、项目介绍
3、项目中异步化怎么实现的
4、讲讲Java集合框架
5、讲讲刚刚你提到的红黑树
6、比如对list排序有什么方法(我问是链表还是数组,面试官说就是arraylist,linkedlist什么的,我说那就collections.sort)
7、讲讲这个sort用了什么排序
8、你刚刚提到的计数排序时间复杂度是多少(线性)
9、讲讲JUC最熟悉的部分(我说了锁机制)
10、你刚刚说到的CAS原理是什么,会出现什么问题(自旋,ABA)
11、ABA怎么解决(版本号机制)
12、你刚刚讲的ThreadLocal会在什么场景下用到(我说了我项目中的一个场景)
13、讲讲spring aop
14、讲讲aop一般用于什么场景
15、说一下mybatis俩种传参机制(占位符和拼接)
16、举个例子说明你刚刚讲的sql注入
17、用一个数组模拟一个栈(我也不知道为什么我当时脑子里只有生产者消费者模式,就写了个生产者消费者模型)
# 京东 二面
1、Hashmap说下吧。
2、线程池有哪些参数,如果满了新的线程会怎么处理?
3、你们网关有配jvm参数吗,都有哪些?
4、高并发的时候你们网关高可用怎么做的?
5、数据库用过吗,如果现在有十亿的数据给你怎么存?
6、你们的熔断降级怎么做的?
7、项目的线程池怎么配的?
8、字符串的类说一下。
9、两个字符串都是y,用equals返回什么?
10、Hashcode和equals的关系。
11、两个线程一起输出100个数怎么做?
12、SpringBoot的AOP是什么?
# 京东技术三面
1、分布式下redis如何保证线程安全?
2、redis持久化的方式以及区别;
3、zookeeper如何实现分布式锁、其他分布式锁怎么实现?
4、kafka的架构,如何用kafka保证消息的有序性?
5、数据库的优化包含哪些?MySQL的优化,谈两个你优化的例子。
6、最有技术难度的项目,介绍下相关核心设计流程。
7、工作中,遇见了技术瓶颈无法解决,你的解决思路?
8、未来你的职业规划是怎么样?
# 京东四面、HR提出的面试问题
(1)您在前一家公司的离职原因是什么?
(2)讲一件你印象最深的一件事情
(3)介绍一个你影响最深的项目
(4)介绍你最热爱最擅长的专业领域
(5)公司实习最大的收获是什么?
(6)与上级意见不一致时,你将怎么办?
(7)自己的优点和缺点是什么?并举例说明?
(8)你的学习方法是什么样的?实习过程中如何学习?实习项目中遇到的最大困难是什么以及如何解决的?
(9)说一件最能证明你能力的事情
(10)针对你你申请的这个职位,你认为你还欠缺什么
(11)如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?
(12)项目中遇到最大的困难是什么?如何解决的?
(13)你的职业规划以及个人目标、未来发展路线及求职定位
(14)如果你在这次面试中没有被录用,你怎么打算?
(15)评价下自己,评价下自己的技术水平,个人代码量如何?
(16)通过哪些渠道了解的招聘信息,其他同学都投了哪些公司?
(17)业余都有哪些爱好?
(18)你做过的哪件事最令自己感到骄傲?
(19)假如你晚上要去送一个出国的同学去机场,可单位临时有事非你办不可,你怎么办?
(20)就你申请的这个职位,你认为你还欠缺什么?
(21)当前的offer状况;如果BATH都给了offer该如何选?
(22)你对一份工作更看重哪些方面?平台,技术,氛围,城市,还是money?
(23)理想薪资范围;杭州岗和北京岗选哪个?
(24)理想中的工作环境是什么?
(25)谈谈你对跳槽的看法
(26)说说你对行业、技术发展趋势的看法
(27)实习过程中周围同事/同学有哪些值得学习的地方?
(28)家人对你的工作期望及自己的工作期望
(29)如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?
(30)若上司在公开会议上误会你了,该如何解决?
(31)是否可以实习,可以实习多久?
(32)在五年的时间内,你的职业规划
(33)你看中公司的什么?或者公司的那些方面最吸引你?
![](https://upload-images.jianshu.io/upload_images/26078969-3e707d718a918ee8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# 一、 面试到底在问些什么东西?
首先你要明确的是面试官所问的内容一定和你简历所写的东西是紧密联系的,一般你没有写在简历上的技能,面试官很少会去提问。
面试大体上包括下面几方面知识类型:
1.、 Java基础、多线程、IO与NIO、虚拟机、设计模式
2、数据结构与算法(要有手写算法的能力)
3、 计算机网络(TCP三次握手和四次挥手)
4、 数据通信(RESTful、RPC、消息队列)
5、 操作系统(Linux的基本命令以及使用)
6、主流框架(Spring底层原理与源码问的很多)
7、数据存储(最常见的是MySQL、Redis)
8、 分布式
除了这些东西还有什么其他问题:
1、 实际场景题
2、 生活方面的问题
3、性格/其他方面的问题
# 二、 面试流程
**1\. 京东公司的面试分为5个环节。**
分别为简历筛选、小组面试、HR面试、终试、offer发放。下面分别讲一下每个环节的主要内容,以及通过技巧。
**2\. 简历筛选。**
这个大家应该都知道,就是你在进行公司招聘时,都会要求投放简历的。京东面试也是如此。会对所有的应聘人员简历进行对比,再筛选出一部分人进入下一个环节。
**通过技巧:**简历要写的简洁大方,同时也要尽可能的展现自己的闪光点和优点特色,尤其是得过的一些奖项和参加的比赛。
**3\. 小组面试。**
这个环节是把上一轮通过的应聘人员,分成几个小组,然后进行小组讨论,讨论的议题由面试人员事先拟定好。在一定时间内,要求小组给出一个统一的答案。如果在规定时间内没有形成一致意见,则整个小组全部淘汰。 **通过技巧:**敢于发言,勇于表达个人观点,不要在小组讨论时,一言不发。思维清楚,逻辑明确。
**4\. HR面试。**
通过以上的面试环节,下面就会进入HR面试环节。这个环节,部门HR向你就某一问题提问,然后让你回答。因为面试人员与上面的不一样,很多人害怕,一见到部门HR就很胆怯了。
**通过技巧**:克服胆怯心理,口齿清楚,逻辑有条理,还有就是这个环节的问题,会牵扯到专业知识,所以面试之前,要复习下所学知识,重在平时的知识积累。
**5\. 终试。**
当你通过以上的测试以后,就进入最终的测试。大部分情况,都会被区域主管级别的领导,对你进行问答,看你表现的情况。
通过技巧:自己领悟吧,我只能帮你到这了,到这关我就折戟了。
**6\. 发放offer。**
当你过五关斩六将,打败了诸多对手后,获得了进入京东工作的机会。差不多过一段时间,京东会给你发放offer,让你去公司报到。
![](https://upload-images.jianshu.io/upload_images/26078969-805a8747999517e0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# 三、 面试常问的知识点
**1、集合相关问题(必问)**
* HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现
* HashMap和Hashtable的区别
* ArrayList、LinkedList、Vector的区别
* HashMap和ConcurrentHashMap的区别
* HashMap和LinkedHashMap的区别
* HashMap是线程安全的吗
* ConcurrentHashMap是怎么实现线程安全的
* HashMap 的长度为什么是2的幂次方
**2、多线程并发相关问题(必问)**
* 创建线程的3种方式
* 什么是线程安全
* Runnable接口和Callable接口的区别
* wait方法和sleep方法的区别
* synchronized、Lock、ReentrantLock、ReadWriteLock
* 介绍下CAS(无锁技术),什么是悲观锁和乐观锁
* volatile关键字的作用和原理
* 什么是ThreadLocal
* 创建线程池的4种方式
* ThreadPoolExecutor的内部工作原理
* 分布式环境下,怎么保证线程安全
* synchronized和lock区别以及volatile和synchronized的区别
**3、JVM相关问题**
* 介绍下垃圾收集机制(在什么时候,对什么,做了什么)。
* 垃圾收集有哪些算法,各自的特点。
* 类加载的过程。
* 双亲委派模型。
* 有哪些类加载器。
* 能不能自己写一个类叫java.lang.String。
**4、设计模式相关问题(必问)**
设计模式比较常见的就是让你手写一个单例模式(注意单例模式的几种不同的实现方法)或者让你说一下某个常见的设计模式在你的项目中是如何使用的,另外面试官还有可能问你抽象工厂和工厂方法模式的区别、工厂模式的思想这样的问题。
另外,建议把代理模式、观察者模式、(抽象)工厂模式好好看一下,这三个设计模式很有用。
**5、数据库相关问题,针对MySQL(必问)**
* 给题目让你手写SQL。
* 有没有SQL优化经验。
* MySQL索引的数据结构。
* SQL怎么进行优化。
* SQL关键字的执行顺序。
* 有哪几种索引。
* 什么时候该(不该)建索引。
* Explain包含哪些列。
**6、框架相关问题**
* Hibernate和Mybatis的区别。
* Spring MVC和Struts2的区别。
* Spring用了哪些设计模式。
* Spring中AOP主要用来做什么。
* Spring注入bean的方式。
* 什么是IOC,什么是依赖注入。
* Spring是单例还是多例,怎么修改。
* Spring事务隔离级别和传播性。
* 介绍下Mybatis/Hibernate的缓存机制。
* Mybatis的mapper文件中#和$的区别。
* Mybatis的mapper文件中resultType和resultMap的区别。
![](https://upload-images.jianshu.io/upload_images/26078969-7c37197a491d2398.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# 重点:总结一些面试经验
1、先投一些普通公司,等面出了心得再去投理想的公司。
2、不熟悉的技术不要主动提。
3、 对于那种实习期6个月还打8折的公司,除非你没有其他选择了,否则不要去。 另外,小公司喜欢在薪水上压你,开的时候适当提高。
4、 不要去参加招聘会,纯粹是浪费时间。
5、 把面试当作一次技术的交流,不要太在意是否能被录取。
6、公司一般面完就决定是否录取了,让你回去等消息这种情况一般没戏,无论你自己觉得面的有多好。
7、尽量少通过电话面试,效果不好。
8、 在面试的日子里,要保持每天学习,无论是学习新东西还是复习旧东西。
9、拿到offer了,问问自己这个公司让自己100%满意了吗,如果不是,请继续努力找更好的。
10、 通过面试官可以大概判断这家公司的情况。
11、 问到自己有深入研究过的知识,抓住机会好好表现,不要轻易放过。
# 总结
最近针对互联网公司面试问到的知识点,总结出了Java程序员面试涉及到的绝大部分面试题及答案分享给大家,希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习。
内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ、Kafka、Linux等技术栈。
完整版Java面试题地址:[JAVA后端面试题整合](https://shimo.im/docs/ygDqxPkVTY9J888V/ )
这篇关于京东Java后台开发岗社招面试经验分享,4面的面经!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!