蚂蚁国际 一面、二面、HR面 已offer
1. 背景
中南大学智能科学与技术专业大三在读,本科期间参加过许多比赛,包括但不限于华为、麒麟软件、腾讯等公司举办的软件开发比赛,都拿过名次。目前在携程集团国际事业部实习,目前已经实习了三个月,打算换个公司看看。趁着阿里春招就投了蚂蚁的岗位,没想到流程推进的极快,一周的时间从一面到HR面就走完流程了,HR面完第二天就得到leader口头offer(这样不可能被挂了吧……)
岗位是国际支付中台基础架构部后端Java开发。
2. 一面
由于我简历里面项目比较多,主要项目也和RPC、Netty相关,面试官就没问啥Java基础了,主要和我交流了一下Netty、RPC相关的东西。
1. Netty的线程模型是怎样的
2. 谈谈你对Netty的全部了解
3. Netty里面的EventLoop是什么?工作原理是怎样的?可以执行哪些任务?
4. EventLoop为什么实现了ScheduleExecutorService的功能,有什么好处?
5. 讲讲你项目里提到的RPC分布式框架
6. 使用zookeeper作为注册中心,当server端服务下线了,如何让client端感知到?
7. 分布式体系中zookeeper崩溃了有哪些解决方案?
8. 看你使用过protobuf,使用protobuf的过程中遇到过哪些坑吗?
9. IDL在你的RPC框架中有实现吗,讲讲IDL的作用
整个流程也就半个小时多一点,基本也都答上来了,面试官最后也直说没啥问题,能通过。反问环节也就简单问了下部门相关情况、岗位相关情况之类的常规问题。
3. 算法面
可能是校招笔试题做的一般,补了一轮算法面,阿里的算法面早就有耳闻不走寻常路,这次看到题目直接实锤了……
算法题目:有五个文件,每个文件里面有n行,请以最快的速度读取所有文件中的数字并输出top50.
题目本身思路不难,就是细节量爆炸,首先需要以最快的速度读取多个文件,肯定就得用到多线程,所有文件读完后还要统一读取所有数字的top50,也就代表着主线程在子线程读完文件之前必须阻塞,然后才能输出,这就得用到CountDownLatch,输出top50使用的是PriorityQueue,但这是个共享变量,就代表着PriorityQueue得加锁,最后就是在I/O时也需要考虑用什么I/O类能更快……
最后也是半个小时写了出来,面试官也说没啥问题,可以通过。
4. 终面
终面直接就是部门的大boss。
上来就是一道非常规算法题:不能用 if else,实现石头剪刀布。我很快写出来一种用数据结构的,但面试官叫我再想一种用上设计模式的,在面试官得疯狂提示下才勉强搞出来。
算法写完后,问的问题也十分非常规(不愧是大boss)。
1. 请介绍一下你自己,不能说简历上有的(我回答了一下在携程实习期间搞过的限流器相关的东西)
2. 既然限流器有两种模型,一种是时间窗,一种是令牌桶,那么这两种限流模型的应用场景各是怎样的,各有什么优势?
3. 在携程实习期间遇到的最大困难是什么?
4. 为什么来蚂蚁,携程不好吗?
5. 未来的职业规划,想好将来的目标了吗?
反问环节先问了问部门情况,然后问了问面试结果咋样(面试官说部门规定不能透露,反倒问我自我感觉咋样,我当然回答自我感觉良好……)
5. HR面
HR面就没啥好说的了,反正就是扣你简历的细节,问问学校,学业,过往的经历,未来规划什么的。
6. leader口头offer
HR面完第二天leader就打电话过来确认了一下能过来的时间,算是发口头offer了吧。
7. 总结
总的来说阿里面试还是不走寻常路,偏重于应用,这就得看临场发挥了。算法也是千奇百怪,但总的来说出的还是挺有趣的,比做纯leetcode算法题感受要好。还有就是面试不面则已,一面就是各种坐火箭,一周就把流程拉完了。leader都口头offer了不可能挂了吧,大概率携程实习完的下家就是蚂蚁了。
8. 后续
已offer,实习生福利感觉还是不错的,阿里实习生都是带转正的,入职流程也比较正式,感觉还是挺有含金量的哈~
#蚂蚁金服春招##面试题目##蚂蚁集团#