今年的大环境非常差,互联网企业裁员的现象比往年更严重了,可今年刚好是我的第一个“五年计划”截止的时间点,说什么也不能够耽搁了,所以早早准备的跳槽也在疫情好转之后开始进行了。但是,不得不说,这次阿里面试真的太难为我了,可以说是和面试官大战了7个回合,不过好在最后给了offer。
我个人情况是5年Java后台经验,阿里定级P7的样子,下面是我的面试经历分享,希望能带来一些不一样的启发和帮助。
限于文章篇幅原因,只能以截图的形式展示出来, 有需要的小伙伴可以文末获取
第一轮:
第一轮面试是电话面,以基础知识为主,前后大概2个小时左右,这个阶段我是比较紧张的。
先自我介绍,包含日常工作
多线程,ThreadLocal,问了父子线程怎么共享数据 interitableThreadLocals
Lock和Sync的区别
AQS原理(执行过程源码,入队出队的细节,源码细节)
CountDownLatch和CyclicBarrier的区别是什么源码级别
volatile从指令重排序,内存屏障
数据库,MySQL索引,执行计划、count1*区别、举例优化sql、MVCC和事务隔离级别的关系、间隙锁、行锁
JVM调优(可达性分析算法中根节点有哪些、cms和G1区别、怎样GC调优、怎样排查CPU彪高、内存彪高、逃逸分析)
redis数据结构、跳跃表、redis qps能上多少,怎么知道的、sentinel和cluster区别和各自适用场景、redis cluster集群同步过程、redis单线程为什么快、多大叫大key、热key产生原因和后果以及怎么解决、本地缓存需要高时效性怎么办?
spring的作用、spring循环依赖怎么解决(说出三级缓存源码细节)、spring aop原理(动态代理)、spring bean生命周期(源码细节,以及各个位置的设计思路,有什么可扩展的)
dubbo服务暴露和引用过程,负载均衡策略,容错机制在哪里实现的源码
项目中碰到的问题。
为什么换工作,如果通过会直接说有笔试题,和你确认笔试时间。
第二轮:
第二轮是笔试,总共两道题,第一题是写代码,第二题是写技术方案。
主要是以查询为主,考察锁粒度、时间粒度上的细节点。(详细省略)
第三轮:
第三轮是现场面试,这一轮面试以解决方案为主,前后大概约1小时20分钟。
第四轮:
交叉面,项目为主,时间大概为40分钟,问的内容不多,这个阶段我个人的状态比较放松了,与面试官交谈的方式也自然了许多。
第五轮:
这轮面试真的让我比较为难了,面试官问什么问题都会问到具体的数值,状态又变紧张了,如履薄冰啊。
第六轮:
总监面,主要是自我介绍和项目介绍,聊天的方式比较舒服,大部分是对你的整体价值观做宏观的把控(比如上进心,责任心,心态,工作激情等,差不多15分钟就结束了。
第七轮:
HR面,阿里的HR很不一样,无论是气质还是谈吐都让人佩服,问的问题也很有针对性,最后告诉我会电话反馈结果。
阿里7轮面试经历完整版(含答案和解析):
限于文章篇幅原因,只能以截图的形式展示出来, 有需要的小伙伴可以文末获取
毕业后,我的第一个5年按照计划进行了,那么拿到阿里offer后,下一个5年也有要清晰的目标。接下来的时间,是形成思维方法论和知识体系的阶段,同时也要培养自己团队协助与管理能力,提升自己的眼界,从而有更长远的发展。
至于心态,脚踏实地,不傲不馁。
最后,希望大家都能够有自己清晰的发展路线,希望大家都能顺利拿下offer,进入理想的公司,共勉!