阿里-蚂蚁金服(支付宝)4面技术面经验
相比起其他公司,阿里面试的时候比较看重项目经验,并随着项目中涉及的技术点进行深入的挖掘。
一面 3.15 约1小时
直接是给我内推的学长来面试,总体非常轻松。从项目开始问,还体验了一下我的一个在线网站,跟着项目问了一些线程、Redis相关的基础知识。之后开始问Java基础知识,比如Java虚拟机,Java 8的新特性,Lambda的原理,ConcureentHashMap的原理、结构......时间太久,有点记不清了。学长最后还叮嘱了我很多需要学习的知识点,并给我推荐了一本关于分布式的书,面试后马上下单买了。
二面 3.23 16分钟
当天晚上被笔试虐得怀疑人生,本以为面试之路到此就要终止了。结果没多久就接到了面试电话,真的特别突然,也特别短。自我介绍,然后问了一些基础知识,Java中有哪些exception,spring bean重名了怎么办?然后问了一个场景题,涉及到分布式事务了,没有答好。最后让我讲一个项目,就结束了。。。我还问了问笔试的事情,他似乎才想起来有笔试,于是去看了看我的笔试,问我为啥做得不好呢(两个0分。。。)我问他这个有影响吗,他说,没事,就参考参考。
三面 3.24 约一小时
三面就很刺激了,面试官会抓住一个点不断的深入问,问完原理还要问实践的项目中怎么用的(有很多小问题都忘了所以记录得不全)。
从项目开始讲,用到了redis,就开始不断的问redis,从底层数据结构(似乎问了快表、跳表)到I/O多路复用(select/poll/epoll),一直到集群redis cluster。最后有个问题被难住了,
单机版的redis在切换为集群之后,数据是怎么转移的?
后来查了一下,感觉网上的方案也没有特别靠谱的。参考Redis单实例数据迁移到集群
因为redis cluster涉及到了hash槽,于是又开始问hash 算法的原理,数据结构、常用hash函数,以及concurrentHashMap实现原理。又继续问hash的冲突处理方案,因为提到了开链法和红黑树,又开始问红黑树的原理,最后以“红黑树的查询复杂度是多少”结束这一回合。
然后问多线程,项目中使用多线程的地方,Java中的线程池了解过吗,线程池中的几个参数及其原理?项目中使用过线程池吗?具体场景描述一下。
.....
最后打开阿里伯乐代码测试平台,做两个题,当听到题目的时候我都惊了,因为刚被阿里笔试虐过,这个题目简单得我有些不敢相信。。。
- 前序遍历二叉树
- 翻转链表
面试官最后和我确定了下实习或工作的地点,并且说可以去成都,这让我非常意外,作为川渝地区的人,当然还是希望回家乡工作啦。
四面 3.30 26分钟
自我介绍 + 项目介绍 + 聊人生,总体来说比较轻松。
4.1
接到二面面试官的电话,告知我技术面都通过了,但hr最近比较忙,所以要等一段时间才能安排hr面~
#阿里巴巴##蚂蚁集团##实习##Java工程师##面经#