一、概述
之前写过两篇文章:
通过这两篇文章,我们给大家聊了聊国内中大型互联网公司,在Java面试时一些高频的技术问题。
本文我们通过一篇真实的一线面经,带大家去体验一下BAT等互联网公司的面试现场氛围!
二、背景介绍
PS:面试者是笔者以前的下属,多年的好朋友。这是他今年早些时候出去面试,拿到BAT等多家一线互联网公司技术专家Offer的面试经历。
先介绍一下这位朋友的个人经历:
- 本科毕业,接近10年工作经验。跳槽之前,在国内某大型互联网公司里带一个8人左右的技术团队。
- 由于公司业务发展较为平缓,所以职业上升机会较少。
- 朋友对其负责的系统架构和技术已经非常熟悉,薪资上也较难有大幅度的增长,至于晋升更高的级别,短期内也不容易。
因此,在仔细思考一番之后,决定出来看看机会,能否在带团队的规模、技术以及薪资上实现一个突破。
一面
一面是一个猎头给朋友推的一个职位,BAT中某一个大厂的某个团队,具体就不说是哪个部门了。
一面就直接过去当面聊了一次,大概从下午2点聊到了下午4点多,时间很长,炮火相当猛烈。
一面面试官也是专家职级,上来就是先聊项目,针对项目中的各种细节仔细问,就项目展开,而且极其注重细节。
下面的内容,是根据朋友面试之后的回忆,整理出的部分问题。
面试同样是通过互联网公司最喜欢的连环炮形式发问。比如在面试过程中,聊到了缓存。连环炮如下:
接着,面试官继续深扣了很多细节
面试官:
- 那请说一下,这些请求具体是落在哪些接口上?
- 哪些数据是数据库和缓存双写一份的?
- 双写一致性如何保证?保证一致性的同时如何保证高并发和性能?
- 缓存线上是如何部署的?给了多大的总内存?命中率有多高?
- 缓存抗了多少QPS?数据流回源会有多少QPS?