网站首页 文章专栏 京东,百度,腾讯,得物面经
京东,百度,腾讯,得物面经

一. 面试情况以及面试体验

共面试了4家,都是java语言,先后顺序为京东数科,百度,得物,腾讯,面试流程最快的为京东,面试体验最好的是腾讯,体验最差的是百度,全程都是电话或者视频面试,最终都通过技术面试了,也过一段时间了,有些面试题目可能记不太清了,想多少写多少吧。


二. 面试情况以及面试题目

<1>,京东数科shardingsphere中间件团队

找猫大人内推的,面试流程很快,当天内推,第二天就邀约,几乎一天一面,共三面,两轮技术面,一轮hrbp面


一面:时间50分钟左右

1,java常见list内部原理,使用场景,时间复杂度(主要回答arraylist,linkedlist,一个数组,一个链表,常规热身题)

2,hashmap是否线程安全,不安全体现在哪(我的回答主要说的是,集合的线程不安全主要还是内存数据的不安全,主内存与本地副本内存数据不一致问题,围绕的数据不安全说明,然后说下1.7和1.8的区别,引申出concurrenthashmap,锁展开)

3,多线程数据不安全的现象是什么(回答还是基于成员变量内存数据不安全,主内存,副本内存在多线程下数据覆盖导致的问题,需要举个例子)

4,解决线程不安全的方案(乐观锁,悲观锁,synchronized,volatile保证可见性,不保证原子性)

5,  synchronized与concurrenthashmap在保证数据安全的实现上有哪些区别区别(回答了synchronized的作用,大致实现原理,锁升级的流程,concurrenthashmap在1.7与1.8的实现等等)

6,jvm内存结构(回答主要说的是1.8的,堆,年轻代,老年代,非堆,堆外内存,直接内存,栈,以及这些对应的jvm参数)

7,堆与栈的本质区别(是否是线程私有,堆的垃圾回收等)

8,jvm调优一般涉及哪些参数(根据当前jvm版本,以及gc策略,以及业务需求,分析目前的不足,gc频繁程度,新生代分配速率,新生代到老年代晋升速率等)

9,进程与线程区别

10,线程有哪些状态

11,bio,nio,io多路复用(可以参见我之前博客的总结)

12,mysql主从复制的流程,半同步复制,组同步(binlog解析,半同步ack机制,组复制mgr)

13,是否用过shardingsphere,场景(了解的不多,大致说了下)

14,项目介绍,数据传输平台,扣了很多细节

15,日志平台,每天日志量大概多少,查询效率有什么问题吗

16,说一个你解决的比较复杂的问题的思路(自行发挥,自圆其说即可)

17,你有什么问题问我(岗位工作内容,对我有什么看法)


二面:时间50分钟左右

        张亮大佬(shardingsphere中间件创始人)面试的

1,自己介绍下

2,为什么想换工作

3,如果换工作,3年的发展定位是什么样

4,比较倾向做技术,管理,还是别的什么,写代码广度优先,还是深度优先,架构师还是基础设施深度,更看重广度还是深度

5,写业务,还是做平台服务于业务,更倾向哪个(上面这些问题都看自己发挥,根据目前面的岗位有针对的说更好点)

6,讲下分布式任务调度项目,怎么做的,架构

7,开源二次开发的项目,有贡献给开源吗,开源项目为什么没接收你们的pr

8,你觉得你的方向,和开源的方向你觉得哪个是对的

9,你们项目,数据传输dts应用场景

10,项目对任务管理的能力,任务挂了怎么办

11,拿到了了binlog,还没消费就挂了,会重复消费吗

12,如果一次消费了1000条,中间处理了500条后挂了,那么下次消费已经消费的500条会重复消费吗,有做幂等性吗

13,mysql协议,大致有32个packet,大致有哪些(太细了,不知道。。。)

14,数据库事务怎么做的(隔离界别,mvcc,隐藏列,redo log,undo log,binlog,readview,快照读,当前读,gap锁,next-key lock)

15,快照什么时候可以清理(我回答的事务提交完清理,面试官说是不正确的)

16,分析器,解析器,优化器怎么工作做的,有了解过解析器吗

17,有了解过solid概念吗

18,设计模式有哪些,讲下装饰者模式使用场景,在你们项目的运用?

19,用过代码度量工具(没了解过。。。)

20,checkstyle有哪些规则让你印象深刻呢

21,最后一个问题,synchronized与volatile区别

22,其他就是聊聊工作,京东内部,发展什么的。。。


总结:技术面应该是过了,后面在沟通入职时间的时候,京东数科与京东云合并了,导致部门大变动,HC没了,所以没拿到书面offer,这个岗位能通过,最重要的因素就是简历匹配,加上对数据库的理解还可以,因为我也是做平台中间件的,而且也做过数据同步的东西,也参与过开源,很匹配京东目前岗位未来的需求。


<2>. 百度交付研发岗位-知识中台方向

百度是找一个很好的朋友内推的,他就在这个部门,为什么说体验不好呢,一方面周期太长了,另一方面,我本来面试的是java岗位,也准备好面试了,结果实际面试的时候,面试官说觉得我更适合大数据,然后强行面试大数据部门,问我大数据相关知识,我整个人是懵的,这什么感受呢,就像你去面馆吃面,跟老板说来碗面,老板说马上做好,你兴高采烈的准好好辣椒,醋准备吃,结果老板过来说,我觉得你更适合吃米饭,你先吃米饭吧。。。

吐槽归吐槽,面试还是得面的

一面:耗时40分钟左右,大数据部门面的我

1,对大数据有哪些认识(。。。不知道,简单说了下知道的hdfs,flink)

2,hdfs的底层原理(不知道)

3,说下项目吧(发现我对大数据了解的不深后开始问项目了)

4,各个项目按照简历问了一圈

5,kafka实现(说了kafka的高性能,大致设计,内部结构,使用场景)

6,说下raft协议,你知道哪些中间件用过raft协议

7,zookeeper讲下,选举流程

6,熟悉docker吗,docker底层原理,熟悉k8s吗

6,反馈说觉得还行,会把我简历退回原部门,这次不算一面


一面plus:耗时1个小时多点

1,讲下项目数据传输

2,怎么保证项目消费数据不丢失,不重复消费

3,讲下分布式任务调度平台

4,你做了哪些,详细讲下

5,为什么这么技术选型

6,你对mq的选型有哪些依据,kafka和rocketmq有哪些应用场景

7,其他的项目细节

8,jvm的内存结构

9,算法题:经典跳楼梯,每次可走一格,也可以走两格,走到最有能有几种走法

10,docker与k8s熟悉吗

11,反馈说k8s与docker不熟


二面:耗时40分钟左右

1,还是项目(我吐了。。。百度就没问过基础知识)

2,你觉得项目最复杂,最难的点在哪(回答了之后,可能我介绍了下项目架构,面试官说我说的是你项目最难的点在哪)

3,讲了下自己做了哪些,哪些流程比较复杂(面试官说我觉得挺普通的,也不难啊,我当时真不知道怎么回。。。)

4,讲了其他项目,又问了一面的问题,mq的适用场景,选型的考虑点

5,如果有个业务要大量接受小消息,除了吞吐量还需要考虑哪些因素(由于之前的不断否定,我已经心态有点崩了,发挥的不太好)

6,有什么要问我的(感觉自己要凉了,就说根据一轮的面试和目前的面试,感觉我可能不是很让你们满意,如果我入职,有哪些是需要我改进,或者学习的,这个问题基本只要面试官问我有什么要问的,我都会说,能从这个问题面试官的回答,大致判断出能不能过这轮面试,给我的反馈是能力对于目前的工作经验是达到的,基础也很扎实,但是说的与实际做的有点虚,就是说的感觉很大,很好,但是实际没那么好,又问我是不是经常做述职之类的,说我表达还可以,很喜欢总结)

7,因为我说了我对开源的一些源码很熟,他就说明天再加面一轮,我去看看代码,明天再问代码


二面plus:耗时半小时

1,本轮是电话面试的,不多废话,直接问代码实现

2,对着开源的文档,问了几个具体的实现方式

3,你们在开源之上的自己的部分怎么实现的

4,你在团队中什么角色,别人是怎么跟你交互的

5,等等。。。


总结:百度的面试给我的感觉不是很好,也可能这就是传说中的压力面,可能金三银四的原因,面试官也面了太多人,就没问八股文,什么java基础,什么spring,什么redis,什么mysql,统统不问,就是怼项目,细节扣到最细,因为是交付研发,我目前做平台也会有交付的部分,所以算是有点匹配吧,但是对于docker,k8s不熟,算是缺点,我都以为要凉了,没想到还是过了。


<3>. 得物供应链方向

得物是群里一位小伙伴的以前领导内推的,全程电话面试


一面:耗时50分钟,电话录音了,所以问题记录的很详细

1,简单介绍http报文结构(head,body,常见属性)

2,状态码,1xx代表什么意思(回答了2xx,4xx,5xx,但是1xx的不记得了。。。)

3,tcp的三次握手(回答了三次握手的目的,具体流程)

4,挥手为什么是4次

5,介绍几种排序算法(讲了冒泡,选择,归并,快排)

6,讲下快排的实现

7,了解希尔排序吗

8,布隆过滤器的原理介绍下(先说了bitmap的概念,再说了布隆过滤器的功能,误判,场景,redis的实现)

9,java的强弱引用(有点忘了,但是大致记得是为了gc,围绕这点大概说的)

10,Arrays.sort()方法的底层是用什么实现的(快排+归并,多种排序的结合)

11,hashmap,concurrenthashmap底层实现

12,1.7与1.8的实现区别,concurrenthashmap怎么实现并发安全的

13,synchronized与volatile使用场景(volatile可见性原理,禁止指令重排,synchronized的最佳实践,锁升级)

14,mysql事务(没啥好说的,mvcc,redo,undo,readview来一套)

15,什么 是幻读,不可重复读,mysql怎么解决的(临间锁)

16,insert的锁机制,什么是意向锁,共享锁

17,索引优化经验(讲解了下索引的结构,btree,b+tree,聚簇索引,非聚簇索引,不适合添加索引的情况,再结合为什么索引失效,讲了大致的经验)

18,如果a,b都是索引,那么select * from xx where a = 'xx' or b = 'xx' 会用到索引吗,用到哪个索引,如果用and呢(or两个索引都会用到,and只会用到一个索引,具体根据优化器选择)

19,介绍class字节码大致结构(还好看过)

20,类的加载过程

21,jvm标记复制算法,标记清除,标记清理整理算法(各自适用的gc,优缺点,引申讲了下各种gc的优缺点,使用场景,并行gc,cms,g1,zgc。。。)

22,springboot自动装配原理

23,redis常见数据结构以及使用场景

24,缓存击穿,缓存穿透,缓存雪崩是什么意思,怎么解决


二面:耗时68分钟左右,微信语音的,具体问题记不清了,想到哪写到哪吧

1,oom怎么排查问题(从jvm,gc等层面分析了)

2,redis,sort set底层结构,如果让你设计一个有序的列表怎么实现(回答的用二叉搜索树作为结构)

3,redis有哪些高级结构(bitmap,还一个经纬度计算相关的)

4,如果让你设计一个缓存中间件,不考虑持久化,集群,怎么设计(问的很深。。。关键点渐进式hash没回答上来)

5,hashmap是如何保证分布均匀的,rehash的过程

6,如果让你设计一个hash函数,让字符串均匀分布在一个数组里,怎么设计

7,mysql怎么优化sql语句,慢sql怎么分析

8,explain分析计划怎么分析,有哪些指标,如果一个很长的sql怎么优化

9,项目

10,算法题,若干个小区,每两个小区都有来回的连线且表明了距离,问从某个小区出发,怎么用最短的路径走完所有小区(关于图的算法,很难,大致说了dfs,剪枝,回溯的思想,没细说怎么实现)


总结:一面纯问基础,二面注重场景题,项目,整体发挥的还可以,从面试官的反馈能感觉还是挺满意的


<4>. 腾讯基础服务组,需转go语言

先夸一下腾讯,面试体验最好,其他的面试,或多或少都存在面试官迟到问题,但是都没有hr联系说要等多久,腾讯的hr一旦发现面试官没按时上线,会帮你处理,而且流程清晰,面试官态度温和,不会的题目也会引导


一面:50分钟

1,熟悉哪些网络协议

2,http的报文,head与body怎么区分的,多个head怎么区分(多个head,通过分隔符,head与body通过空行)

3,http服务端怎么知道应该读取多少数据,怎么知道数据是否读取完了(通过content-length)

4,如果没有content-length属性呢,比如文件之类(通过chunked协议,默认大小的块读取,读到最后没数据了就结束,没回答上来,但是在面试官的引导下,大致回答的还算对)

5,tcp三次握手,四次挥手过程

6,tcp挥手服务端关闭资源的系统调用是什么(close())

7,tcp四次挥手后就立马断开了吗,为什么(要等2个MSL)

8,常见java基础题。。

9,项目

10,因为我说了对网关有了解,讲解了下对soul网关的认识

11,其他也没啥了,问对转go语言是否能接受


二面,三面一起连着的:

1,基本也是问项目

2,网关

3,对转语言的看法。。。

4,等等,记不清了


四面:总监面,30分钟

1,项目

2,去深圳发展考虑清楚了吗

3,转语言看法

4,自己的规划

5,你创业的过程(因为我毕业后有大半年的创业经历)

6,你之前的创业经历经验有哪些可以给你现在用的


五面:cto面

 1. 到这面基本上没啥大问题就不会刷人了,问了下项目,从背景,过程,结果各方面讲一下。

2. 你做的这个中间件带来了哪些增益,比如提升了多少效率,降低了多少项目开发成本,有哪些指标

3. 有什么想问我的

三. 面试总结

面试的过程是很痛苦的,要准备,要抽时间,最熬人的还是面试完的等待。。。

总结下经验吧:

1,找熟人内推

2,投递之前一定要看下岗位匹配情况,知己知彼,百战百胜,我目前通过的基本都是岗位比较契合,尤其是京东的跟腾讯的,腾讯的也是基础架构组,做的类似我目前的技术中台,岗位匹配至少成功了3层

3,都不怎么问八股文,现在大厂也明白了,这些八股文区分不开人才,项目才是重点!一定要把项目研究的非常透彻,尤其是百度的,全程问项目,问的非常深

4,至少一个项目要有深度,有亮点,作为你的主打牌介绍,没有的话找个开源项目研究透,也能说

5,表达能力要练习,语气语速,逻辑是否清晰也很重要。

6,对未来规划要有,最好每个岗位都提前想好,自信的说出自己的规划,很加分

7,自我介绍准备好,说的要流畅,分条例,重点突出,不要出现大量的语气词停顿啥的


目前就像这么多,能拿到这些offer也很幸运,念念不忘,必有回响,为了大厂,我准备了大半年,刷了近300道算法题,虽然也没怎么考算法。。。持续的付出,终于也算有了不错的回报,也感谢各位小伙伴的内推,也希望大家都能有个好offer!

有什么问题可以给我留言哦!


------------------------------------------------------------------------

更新:已入职深圳腾讯,需要内推的小伙伴可以联系我






版权声明:本文由星尘阁原创出品,转载请注明出处!

本文链接:http://www.52xingchen.cn/detail/84




赞助本站,网站的发展离不开你们的支持!
来说两句吧
大侠留个名吧,或者可以使用QQ登录。
: 您已登陆!可以继续留言。
最新评论