网站首页 文章专栏 京东,百度,腾讯,得物面经
共面试了4家,都是java语言,先后顺序为京东数科,百度,得物,腾讯,面试流程最快的为京东,面试体验最好的是腾讯,体验最差的是百度,全程都是电话或者视频面试,最终都通过技术面试了,也过一段时间了,有些面试题目可能记不太清了,想多少写多少吧。
找猫大人内推的,面试流程很快,当天内推,第二天就邀约,几乎一天一面,共三面,两轮技术面,一轮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,这个岗位能通过,最重要的因素就是简历匹配,加上对数据库的理解还可以,因为我也是做平台中间件的,而且也做过数据同步的东西,也参与过开源,很匹配京东目前岗位未来的需求。
百度是找一个很好的朋友内推的,他就在这个部门,为什么说体验不好呢,一方面周期太长了,另一方面,我本来面试的是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不熟,算是缺点,我都以为要凉了,没想到还是过了。
得物是群里一位小伙伴的以前领导内推的,全程电话面试
一面:耗时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,剪枝,回溯的思想,没细说怎么实现)
总结:一面纯问基础,二面注重场景题,项目,整体发挥的还可以,从面试官的反馈能感觉还是挺满意的
先夸一下腾讯,面试体验最好,其他的面试,或多或少都存在面试官迟到问题,但是都没有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!
有什么问题可以给我留言哦!
------------------------------------------------------------------------
更新:已入职深圳腾讯,需要内推的小伙伴可以联系我
版权声明:本文由星尘阁原创出品,转载请注明出处!