2019-04-08 阿里面经
2019-04-09 本文已影响0人
凭窗听风
上午十点多,阿里的面试官打来电话,约了晚上七点半的电面。
晚上七点半,在公司附近找了找了一条僻静的小路等着接电话,七点三十五电话打进来。面试官首先对自己进行了自我介绍,是来自中台部门,介绍了部门情况和主要职责。然后确认了我的学校和简历,阐述了希望面试能以交流的形式平等的进行,之后开始了电面流程。
- 离职的原因是什么?
- 阐述下对技术代码和业务代码的理解
我答技术要服务于业务,技术的积累要服务于业务,提升业务性能和稳定性。
面试官说了自己的观点,业务是可以进行抽象的,代码可以抽象出来,服务于不同的业务。并没有举具体的例子,做中台系统是会有这样的理解吧。 - 举个你对业务进行的优化例子
我讲了对消息队列处理的优化,增加处理线程,提供ACK机制
面试官进一步询问了优化参数是怎么确定的,知不知道消息队列处理延迟的概念。 - 有没有多线程的使用经历,怎么进行的优化
讲了之前的一个业务项目,业务逻辑说了太多,被面试官打断,让我集中于技术实现。答用了多线程,索引优化,还有个分表忘说了,使用了JUC包中的一些组件。 - 有没有线程池的使用经验,线程池的处理逻辑是怎样
答了线程池的参数,讲了线程池的任务处理逻辑。
面试官进一步问了线程池如何实现线程复用。 - 有没有中间件使用经验
答用过redis
问redis挂了,缓存击穿怎么办?能不能通过在应用中加锁实现控制,防止DB访问压力太大造成宕机。
这里面试官一直强调用锁实现,思路就集中在lock和synchronized上,回去想了下其实可以通过Semaphore执行线程的数量控制访问量的。说到底还是缺少应用。 - 有没有读过框架源码,说一个
上次面也被问到过类似问题。答了读过springboot结束进程的源码,在此基础上做了应用平滑下线的优化。
面试官说就是线程的结束,除了交给spring外还有没有jvm提供的方法实现结束线程。
最后问我有什么要问的,我问了面试官对我有什么意见,面试官建议我可以读一读源码,多做总结。
一个月之前面试阿里的失败经历还历历在目,这次比上次并没有太高的提升,甚至连自信都没有了,本来想拒掉这次面试,等好好准备下再试,但侥幸心理作用下还是接受了这次面试。结果可想而知,感觉连电面都过不去。
总结一下不足:
- 项目经验,项目规模,虽然这受制于平台,但可以自己横向扩展。就算没有真刀真枪,至少演习一下还是可以的,租台服务器现在也是便宜的很
- 中间件,常见中间件的使用,应用场景,调优等
- 框架源码,阅读,经典框架最好自己实现
- 面试时要能跟得上面试官的思路,不明白意图的时候要问明白
- 技术面要尽量多的停留在技术层面的交流,不要扯太多的业务,更不要扯情怀,言简意赅的点到技术点
- 最后说一点,准备面试时不要局限于面经,重点还在于平时的学习积累。面试官的问题可能非常跳脱,没有全局的掌握可能是要吃大亏的。面经的问题只是用来稳定心神用的。
可以说这次找工作的经历并不太顺,打击可以说很大,三月初时一腔热血到现在被一盆盆凉水浇的凉透。但通过几次面试也发现了自己的问题和不足,还是要调整心态,重新为下一轮做准备。