经过5轮面试,拿到饿了么P7 offer (面试经验篇)

今年初拿了个饿了么P7的offer,于此同时大家顺便看看我怎么途虎一轮游的。废话不多说,直接上题吧。

一面

首先上来就是自我介绍,简单的说下自己的项目经验,涉及的技术栈之类的。

然后每一轮必问的问题来了:说说你印象最深刻的项目!

这个已经被问的都不想说了,挑个有很多槽点的来说,并且自己已经知道问题答案的,我说了一个服务迁移同时双写的解决方案。

接着按照国际惯例先来一个HashMap原理。。。

那就来吧,简单说下HashMap数组+链表结构,hash的实现方式和好处,高低位异或降低冲突,扩容的方式,头插和尾差这些差不多就好了。

这里我也不等他问了直接讲ConcurrentHashMap了,反正接下来肯定是问的,就说了下1.7和1.8的实现区别啊,1.7使用分段锁啊,而1.8使用CAS+synchronized实现,增加了红黑树避免链表过长导致的性能问题,put和get的实现我一般就不主动说了太累了,等他问问了就说,不问就省点功夫。

然后既然说到了synchronized那就说说它的原理吧,接下来又是什么monitor对象啊,对象头啊,锁信息、分代年龄、GC标志一些难懂的话,整个电话里都充满了欢乐的气息。

好吧,接着自己老实点说锁的优化吧,自旋、消除、粗化、轻量级、重量级、偏向都说一遍,我记得我就说了下自旋和偏向就完了,因为我发现年纪大了这些东西跟背书一样总是忘。。。

经过5轮面试,拿到饿了么P7 offer (面试经验篇)

接着问了个问题说cpu负载和CPU使用率区别,我告诉他医院有3个医生,10个病人都排在一个医生下面,另外2个医生没人,这时候CPU使用率是33.33%,但是负载就非常高了。然后接着问系统负载过高怎么办是CPU负载也不是IO负载!这一题我没回答,主要是感觉没太明白意思,后面去网上搜了一下,说是阿里面试必问题,大家有兴趣可以去搜搜看。接着又问CPU很高怎么排查个也没啥,我前面的面试详解六里面写了,这里不展开。

然后接着聊了下GC,年轻代老年代的收集器哪些,GC过程,不是很深入。接着说饿了么日订单过千万,针对这个场景分库分表你怎么做个按照我们之前的经验说了下之前的解决方案,根据用户或者商家维度sharding,历史数据归档,只能查询3个月或者半年数据,有更多的需要走离线数仓这种。然后一定会问那根据用户sharding其他维度的查询怎么办,这里就是关联表啊,索引啊,如果可以一定带着sharding_key去查询啊,实在不行只能多线程扫表啊,还有打宽表之类的。

接着又聊MQ,怎么保证消息的可靠性,因为我们之前用阿里云的ONS,就以RocketMQ举例子,丢失的场景啊,生产者发送失败、MQ自己丢失、消费者消费失败3个方面说就好了。

最后就聊了下1.8的新特性stream啥的说说,BIONIO说说最后就结束了。整体感觉还行,除了那个负载的问题有点坑,另外就是NIO这个确实基本没用上靠背书了。。

三面-老板P8面

3面就是以后直属老板面试了,这一轮没太多聊技术问题,主要是聊项目怎么做的啊,怎么设计啊,让你设计的话你怎么设计,不过这一轮感觉当时脑子有点抽就是面的不太行,反应迟钝,反而最简单的是面的最不好的一轮。。本来还以为挂了,最后过了。

四面-部门leader P9面

4面就是中台的大领导面了,3面老板是P8,4面的话是P9面,这一轮的问题也比较中规中矩吧,基于项目问的非常细,我这里也就没办法表述了,还有就是又把dubbo、mq、redis又说了一遍,可没把我累死。这一轮面的比较好,轻松通过吧。

终面-HR

因为我面的是7所以一般就是5面了,除非可能其他几面的面试官意见不统一可能要加面,我一个朋友就加面了一轮还是过了。最后就是HR谈薪资了,这里HR先问我你期望薪资多少,我说涨幅20-30%,然后他直接给我报了一个数。。。。我想问那你问我干啥小朋友头上有很多问号好不好。。。

经过5轮面试,拿到饿了么P7 offer (面试经验篇)

好吧,这就是今年的一份面试经历,有点意思的,与君共勉吧。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91312 人正在系统学习中

来源:程序IT圈

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月26日
下一篇 2020年7月26日

相关推荐