【面经+真题】毕业两年的程序员,最后选择了蚂蚁金服

作为一个毕业两年的程序员, 最近一直在寻找合适的机会能够换一个环境。


一是寻找一个更加宽阔的舞台不断的提升自己;二是让自己走出现在的舒适区域,迎接更多的挑战和认识更多的人;当然还有为了获得更好的一份收入。


下面记录了我的面试经验,一方面用作后期自己回顾知识点,另一方便给正要面试的人一些经验。

640?wx_fmt=jpeg

一面

  • 项目介绍

  • 项目中如何保证数据一致性的

  • 存在的问题

  • jvm 内存

  • 程序计数器的作用

  • gc 算法, 垃圾收集器

  • spring事务,事务实现的机制,如何保证事务的

  • 悲观锁,乐观锁

  • HashMap

  • 红黑树,B+树

  • 数据库死锁,如何防止死锁


二面

二面开始于5道题目,整体感觉还是比较难的。面试的前一天给我发的题目,然后晚上下班后(9点左右)我做了5个小时才完成。 第二天面试的时候,主要围绕题目进行展开和发散。


从第一个题目延伸出(转账):

  • 分布式事务的保证。具体的解决方案;

  • 接口的幂等性;

  • 如果向某个账户转账在高并发环境下,设计的接口有什么问题(数据库瓶颈)

  • 如何解决上述的问题

  • 如果账户表很大,具有亿万级别,如何提高查询效率(分库分表)

  • 分库分表具体操作,什么时候分库,什么时候分表,各个使用场景

  • mysql主从

  • mysql如何保证主从的数据一致性

  • 数据库的容灾


第二个题目: 抢红包

  • 抢红包的实现方案;(我给出的解决方案是存下抢红包的操作,然后乐观锁更新金额,保证数据的最终一致性)

  • 有没有优化空间

  • 春晚红包方案(包括限流,网络瞬间抖动,数据一致性)这一点聊了很久

  • 对分布式的看法

  • 开源中间件熟悉哪些?(只是做简单了解)


三面

  • 读书时候的经历? 介绍读书时候的项目

  • 项目一(支付营销系统)的具体介绍, 架构,项目中某个操作的具体流程图,如何压测? 性能优化? 项目中机器的台数,机器扩容标准? 线程池大小?线程数设置标准?

  • 平时用到了哪些集合?hashmap的问题?cpu 100%出现的情况?Treeset的实现?

  • 分布式事务,秒杀系统的要求?秒杀系统的设计原则?注意事项?项目中遇到的问题?解决放肆?

  • 项目二(分布式调度系统)的具体情况,架构?中间某些步骤的具体的设计思路。(这个挖的很深,而且面试官确实很厉害,几分钟能够了解你整个项目的大致情况,知道你设计的痛点,然后咨询你如何解决的)

  • kafka消息可靠性保证?其他中间件有没有了解过?平时阅读什么技术?


HR面试

HR面试主要问过往的经历,以及个人的职业规划,就职意向等。


个人总结

程序员的这条路上我一直在学习,自认为在同辈中水平较好,但通过这次面试我发现自己还有很多不足。


入行以来,接受过很多人的帮助。读书时有老师同学互相分享经验,毕业后我走过弯路,但好在我遇到了图灵学院的老师,一次次不厌其烦的指导我,二面时老师视频指导我到凌晨。


面试结束,老师分析我的思路不够开阔,看待问题不够深入,比如HashMap出现100%CPU的情况以及原因。庆幸的是,最后我还是拿到了offer。


根据以上面试题,图灵学院特地整理出相关资料,限时免费送给大家。


部分视频知识点

640?wx_fmt=gif 640?wx_fmt=png


面试真题详解

640?wx_fmt=gif 640?wx_fmt=png


电子书

640?wx_fmt=gif 640?wx_fmt=png

群号:1015937941

640?wx_fmt=jpeg

加群即可免费试听技术分享公开课,还有架构师进阶资料包领取


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值