京东后端Java高级架构师面经+面试题:Spring+多…
2019-08-16 10:04:43来源:博客园 阅读 ()
京东后端Java高级架构师面经+面试题:Spring+多线程+NIO+MySQL
之前面了腾讯的提前批,不过没走流程。同期还面了阿里的两轮面试,被告知不走流程就不能面了,所以也没面完。
后来走了京东这边的流程。前几天刚刚面完HR。
正好今天分享一下面经,大家可以多交流交流哈。
京东面经
- 第一轮:电话初面
- 第二轮:技术面谈
- 第三轮:高管复试
- 第四轮:HR最后确认
第一轮电话初面:
首先确认对京东的意向度(如果异地更会考虑对工作地点(北京)的意向度!京东很看重这个);其次面试官一般会针对您所做过的项目来做具体技术的交流,会比较关注个人对项目细节是不是掌握到位,主要考察Java的技术基础和原理,比如Spring框架以及数据库和JVM三个方面,也会交流到分布式、线程池的实现等等,重点考察是不是有比较钻研技术和技术上的亮点【不一定每个面都很厉害但一定要有亮点】;
第二轮技术面试:
-
Java中的多线程了解么,线程池的增长策略和拒绝策略了解么,说一下。
-
讲一下线程增加的过程和拒绝策略的执行。
-
讲了一下fixthreadpool的增长策略,然后几种拒绝策略。
-
高并发情况下,如何使用线程池,用哪个,问了一下线程结束要多久,是否在下一个线程结束前完成(我想的是cachethreadpool,其实思路错了)。
-
表示并发量比较大,所以我说可以考虑并发量是否大于队列长度加上最大线程数量和,如果不超过的话可以是用fixthreadpool。
-
并发juc了解么,有哪些线程安全的list。说了个copyonwritelist,想了半天说不出第二个了。尴尬,那就vector把,不是juc里的。
貌似并发包里确实没有其他list啊。
还问了concurrenthashmap1.8的改动。
-
HTTP协议了解么,和tcp有什么区别。
-
http1.0和2.0的区别。
答了TCP连接复用,加入ssl,以及压缩请求头。
其中哪个更新比较有意义,为什么。我说的是压缩请求头,这样可以优化HTTP服务的性能。
- Java的网络编程,比如NIO和Socket了解么。说下BIO和NIO的区别把。
说下BIO和NIO的区别把。
我说了BIO的阻塞用法,以及NIO的IO多路复用用法,说了selector,seletedkey,channel等类的使用流程,以及单线程处理连接,多线程处理IO请求的好处。
- 说一下NIO的类库或框架
讲了netty,写过服务端和客户端的demo,没有在生产中实践。
channelhandler负责请求就绪时的io响应。
bytebuf支持零拷贝,通过逻辑buff合并实际buff。
eventloop线程组负责实现线程池,任务队列里就是io请求任务,类似线程池调度执行。
acceptor接收线程负责接收tcp请求,并且注册任务到队列里。
- 倒排索引了解么,我说不了解。
其实就是搜索引擎的基础索引,根据关键字到文档的映射关系建立索引,中文关键字可以使用中文分词,查询时通过关键字来定位索引,并且进行排序后得到文档结果集。
然后面试官说讲一下数据库把,说下sql优化的方式
我说的是MySQL,先讲了一下sql使用索引的优化,然后基于索引说了几条优化方案。
- 索引什么时候会失效变成全表扫描
说了联合索引的前缀匹配,跳跃索引,聚合函数,判空和<>这些情况。
- 分布式的paxos和raft算法了解么
了解过,但是讲不清楚。
paxos:多个proposer发请提议(每个提议有id+value),acceptor接受最新id的提议并把之前保留的提议返回。当超过半数的accetor返回某个提议时,此时要求value修改为propeser历史上最大值,propeser认为可以接受该提议,于是广播给每个acceptor,acceptor发现该提议和自己保存的一致,于是接受该提议并且learner同步该提议。
raft:raft要求每个节点有一个选主的时间间隔,每过一个时间间隔向master发送心跳包,当心跳失败,该节点重新发起选主,当过半节点响应时则该节点当选主机,广播状态,然后以后继续下一轮选主。
- 中间件知道哪些,阿里的dubbo,rocketmq的事务消息,问了TCC回答说这个之前没看明白。
说了mycat实现分表分库,消息队列kafka和rabbitmq等。
-
平时看什么书,怎么学习的。还跟我说他们部门3个华科的,校友多多。
-
Spring和Springmvc讲一下。讲了Spring的ioc和aop,Springmvc的基本架构,请求流程。
第三轮高管复试
-
自我介绍
-
项目,收获
-
Linux了解哪些,基础命令和知识。问我proc文件系统了解么,答不了解。
-
TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。
-
TCP的四次挥手,time wait状态有什么意义。
-
说完这个他问我有什么想问他的了。
-
我问他为什么隔了这么久才面试,而且之前两面都只是初试,然后他说最近他在休假,所以就...害我担心了好久。他说接下来等HR面就行了。
第四轮HR面
-
兴趣爱好
-
三年到五年的职业规划
-
意向公司和城市
-
实习经历和收获
-
实习中最大的困难
-
为什么换公司,为什么拒绝菜鸟实习offer
-
你的缺点和优点
-
你觉得你比其他人优秀的地方说三个
-
为什么想来我们部门
写在最后
由于篇幅有限,部分答案就不做全部展示了,这些面试题的答案我已经整理成PDF文档了,同时也整理了一些问题详解;虽然说花了一点时间,但是我也愿意把它免费分享出来,希望能够帮助到有需要的Java工程师朋友,也省的大家再去网上花时间找资料。
↓ 后台回复【面试】
原文链接:https://www.cnblogs.com/Java-no-1/p/11160419.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash