泪目!跳槽太不容易,蚂蚁金服三轮面试,四个小时灵魂拷问

本人是双非院校科班研究生,Java开发3年工作经验,以下是最近的面试总结:

先说下我的面试准备经历,为了保证自己简历有较大一定的概率通过筛选,我在2018毕业后面试了多家公司,去了一家上海一家小公司一直工作到今年5月。

和往年相比,今年的金三银四看上去不是那么顺利,可能和我的准备不足有关,但是令我惊讶的是第一家给我面试机会的公司竟然是阿里巴巴。一开始接到面试通知时,心情特别复杂,紧张又兴奋,阿里巴巴是出了名的深挖项目实战,实际上我项目部分是相对薄弱的。这次面试,一共三轮,共计四个小时左右,这三轮面试对我来说,简直是灵魂拷问,至于结局,往下看吧!

泪目!跳槽太不容易,蚂蚁金服三轮面试,四个小时灵魂拷问


蚂蚁基本是电话面。第一面leader面,第二面总监面,第三面交叉面。


第一轮面试:1小时28分钟


面试官问的面试题:

  • 最近做的项目介绍一下

  • 做的过程中遇到了什么问题,如何解决的

  • redis集群高可用原理,一台挂了,怎么切换到另一台

  • 如何保证redis和mysql数据一致

  • 数据库事务

  • 很大的表如何优化

  • limit的局限性,limit值很大的时候有什么问题

  • mysql锁介绍一下,有哪些应用场景

  • 索引失效的场景

  • 线程的生命周期

  • 线程池很高怎么处理

  • 在分布式任务中,一个微服务的很多线程报错,如何处理和定位

  • JVM内存分为哪几块

  • 介绍一下垃圾回收机制

  • 有没有阅读JDK源码的习惯


第二轮面试:1小时11分钟


  1. ThreadLocal原理,放在堆还是栈。用过吗?

  2. Sync 可以作用在哪里? 有什么区别?Sync的底层原理?

  3. 轻量级锁升级成重量级锁会有开销?有没有什么办法让锁不升级?上来就用重量级锁?

  4. aop原理,实际使用过吗?

  5. Springboot的使用过程中,有哪些觉得比较方便的地方?

  6. 对spring的核心原理有哪些了解?会根据所答来进行深入的问。

  7. Spring实例化bean的时候会实例化所有的bean吗?

  8. Spring实例化的时候需要先构建一个实例吗?

  9. Bean的循环依赖是怎么解决的?

  10. 项目中为什么使用Redis?

  11. Redis的性能优化你如何实现?

  12. 从底层实现角度讲讲Redis为什么快?

  13. 线上Redis有哪些事项需要注意?

  14. 线上如何让Redis 6.x性能发挥到最大?

  15. 线上Redis持久化方案如何选型?为什么?

  16. 谈谈Redis底层多路复用实现细节

  17. 有没有使用Redis做过设计呢?

  18. JVM的调优大致步骤?

  19. Jvm的收集器有哪些?各自的优点和缺点?以及各自的回收算法?

  20. Sql的优化?sql语句本身的优化?sql所用到索引的优化?

  21. 哪些情况会导致sql的索引失效?

  22. 索引的底层结构以及优缺点?


第三轮面试交叉面:1小时15分钟


  1. 项目相关的问题

  2. 秒杀项目需要考虑的问题

  3. 秒杀场景用到分布式锁的情况,

  4. 服务隔离是如何做的,假设没有分库分表的情况下,服务如何做隔离

  5. 数据库CPU占用率高的原因

  6. 磁盘总空间50G,统计出来的空间有30G,剩余20G可能去哪里了

  7. 限流如何去做,不用redis,还可以怎么实现(令牌桶,滑动窗口)

  8. 项目转变成微服务后遇到的问题,如何解决,

  9. 分布式事物的实现原理(我自己引上来的TCC的分布式事物)

  10. RocketMQ问得较多(呜..没有答好)

  11. 在RocketMQ的群组消费中,每个消费组都会消费主题的一份全量消息吗?为什么?

  12. 假设一个RocketMQ集群部署在两个机房,每个机房都有一些NameServer、Broker和客户端节点,当两个机房间的链路中断时,NameServer、Broker能不能正常提供服务?为什么?

  13. 如果不需要严格顺序,为了提升消费性能,可以不可以将Consumer设置为自动确认消费位置,然后批量拉取消息放到内存队列中,然后异步多线程并行执行消费业务逻辑?为什么?

  14. RocketMQ能不能保证在“从消息生产直到消费完成”这个过程中,消息不重不丢(Exactly once) ?

  15. 在RocketMQ的一个Broker 上,使用一个消息序号消费某个队列的消息。其中,消息文件(commitlog)的数量是m个,所有消息文件中的消息条数是k条,目标队列对应的索引文件(consumerQueue)的数量是n个,队列***有j条消息。查找消息的最快时间复杂度是多少?O(n)还是O(1),为什么?

  16. RocketMQ使用了哪种零拷贝技术?

  17. RocketMQ中如何解决重复消费?

  18. Dubbo 有哪些核心组件?底层原理?Spi是什么?spi的好处是什么

  19. 最近在学什么?讲讲SpringCloud alibaba的一些东西


小结

项目相关的问题

蚂蚁没有考算法,基础知识也有考一些,感觉更看重眼缘和讲项目的能力。

大厂的面试,就是挂和被捞的过程。去年下半年没面上几个钟意的公司之后,已经下决心继续打磨一下自己。在今年上半年开始了新的面试。但我目前的简历技能模块上重点强调自己对redis、多线程、jvm、MySQL这些知识点有比较熟练的掌握(后面二面后我被挖底层挖怕了,以至于我现在简历改成了熟悉掌握)

另外一个原因就是RocketMQ没有深入研究过, 答得吞吞吐吐,聊完RockerMQ后, 我把话题转移到Kafka时,听面试官的语气停顿了一下,估计有些小失望吧!但这次经历给我的感受还是很不一样的

而程序员在应聘时更是需要经历层层面试。俗话说,磨刀不误砍柴工,做好面试前的准备工作可以帮助大家更好地应对面试官的问题以及面试中的突发情况。

总的来说,自己如果有想要去的大公司,一定要提升好自己,让自己的能力和素质与公司匹配的上,我也一直相信,机会永远是留给有准备的人。下面这份我经常刷的面试手册,分享给大家~

资料获取方式:

转发  点击此处   即可免费获取到!

泪目!跳槽太不容易,蚂蚁金服三轮面试,四个小时灵魂拷问








全部评论

相关推荐

大方的大熊猫准备进厂:1.教育背景:你希望从事什么专业的工作你的主修课就是什么;成绩优秀是你应该做的,没什么可描述的,成绩不优秀也许人家在大学忙着创业呢?(成绩优秀不一定是好事,只能说明多元化的大学你上成了高中,没有真正上明白大学,反而体现了你死板,不爱社交,没有别的突出能力) 2.实践经历:你想表达的意思没有说清楚。你是说你会个性化服务,还是你有实习经历。如果没有带来,经济收益,表彰,更好的发展前景,那你还不如说说提升了自己哪些技能。你说有人给你送锦旗我都能明白你优秀,但是你说你会xxxx,你说这话谁信,证据呢。 3.入伍经历:你描述的就是你的工作职责或者你应该做的,并没有体现出来你把这个事情做好了,而且入伍经历并不能证明你能干好你要应聘的工作,不如只写经历其余所有内容都不写。 4.荣誉技能:重点突出一下,但不要过多描述,这些荣誉的含金量懂得都懂。 重点:你要应聘什么工作(具体岗位,实习生不具体),你的期望薪资
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务