上个月 4 号通过阿里工作的学长进行内推,7 天简历评估,11 号接到电话面试,尽管猝不及防回答仓促,但好在前期准备充分,通过。3 天后进行现场面试,通知时间为早上 10 点。当日设了七点闹钟,结果五点五十三分惊醒后再无法入睡,起床,重新翻看之前做的笔记和重点,在 lintcode 上找了几道可能性较大的题进行练手。10 点准时在蚂蚁金服总部开始面试,十点四十七分结束。15 号收到通知,现场面通过,16 号进行 HR 面,22 号收到 Offer。

面试内容如下:

一、 电面:

自我介绍

项目情况:

        
  •  对你来说影响最大的一个项目(该面试中有关项目问题都针对该项目展开)?    
  • 为什么会想做这个项目?这个项目的 ideal 是谁提出来的?    

  • 项目中如何实现的大数据的传输和存储    

  • 项目中哪一部分最难攻克?如何攻克?    

基础知识考察:

        
  •   模块化的好处
  •   Htttp 协议
  •   hashmap 和 concurrenthashmap 区别及两者的优缺点    
  • 对 MySQL 的了解,和 oracle 的区别    

  • 对设计模式的看法和认知

  •  有哪些设计模式    
  • 如何实现分布式缓存    

  • 多线程如何避免死锁    

  • Java 的垃圾回收机制    

  • 对 Runtime 的了解 

电面过程中非常注重基础知识的考察,面试前务必对基础知识内容进行复习和梳理。基础知识考察的内容一般会围绕项目内容进行展开,在前期对项目介绍进行准备时需适当换位,思考面试官的提问逻辑,避免给自己设下陷阱。

 二、 现场面:

背景了解:

        
  •  为什么要选择编程这条路    
  • 何时开始编程    

  • 如何进行自学 

  •  阅读过那些书籍    
  • 项目考察    

  • 项目运行过程中成员是否曾就某一点发生争执?作为 Leader 你是如何解决的?具体事例?    

  • 项目最终实现效果    

  • 项目具体部分使用的设计模式并简述选择理由    

  • 项目有何需改进之处并初拟改进方案

想问的问题

技术面中项目占了相当一部分时间,项目中从技术到个人团队领导能力,从完成执行能力到思想灵活度,都是面试官希望得到的信息。因此,必须对自己的项目多方面展开准备,项目回顾的过程中需不断思考改进方案和具体措施。

三、 HR 面:

        
  •  业余爱好    
  • 为什么不参加竞赛?    

  • 你觉得你在项目运行过程中作为组长是否最大限度发挥了组员的优势?具体事例?    

  • 如何看待阿里在大数据方面的投入?对阿里的发展有什么建议?对蚂蚁金服的发展有什么看法?    

  • 职业规划,今后想发展的工作方向

  • 哪里,是否愿意长期在杭州发展?

  • 薪酬问题及入职情况
        

适当藏拙很重要,因为作为面试者,我们很难判断什么不足对公司来说是无法容忍的,如果临场随性发挥,就容易出现语言漏洞,从而被作为切入点暴露自身缺陷。因此,面试前要仔细准备各种问题,对语言进行推敲,尽量将话题引向有利于自己的方向。

蚂蚁金服面试题大总结

蚂蚁金服 Java 岗一面:

        
  1. HashMap&ConcurrentHashMap 再谈谈一致 hash 算法?    
  2. 乐观锁 &悲观锁?    

  3. 可重入锁 &Synchronize?事务四大特性?    

  4. 事务的二段提交机制?    

  5. 聚簇索引 &非聚簇索引?    

  6. 用自己的实践经历说一下索引的使用场景(说一个就要举一个例子)?    

  7. 当前读 &快照读?    

  8. 类加载过程?    

  9. 双亲委派机制及使用原因?    

  10. 说说 GC 算法?    

  11. Http&Https 的区别 Https 的加密方式线程池的核心参数和基本原理线程池的调优策略你有什么职业规划

        

蚂蚁金服 Java 岗二面(从项目入手):

        
  1.  说说自己参与的项目,技术难度在哪里?     
  2. Collections.sort 底层排序方式?    

  3. 排序稳定性?    

  4. 具体场景的排序策略?    

  5. Http 请求过程,DNS 解析过程三次握手四次挥手简述线程池和并发工具的使用?    

  6. 数据库索引原理频繁老年代回收怎么分析解决 Spring IOC、AOP?    

  7. 讲讲 SpringBoot/SpringCloud 的一些应用?    

  8. 阻塞队列不用 java 提供的自己怎么实现,condition 和 wait 不能用拥塞窗口讲一讲,为什么要用慢启动算法负载均衡的原理?    

  9. Redis 的数据一致性问题(分布式多节点环境 & 单机环境)?    

  10. 讲讲 docker 容器?    

  11. 如何实现何高并发下的削峰,限流?   

  12. 你有什么职业规划(每个面试官都要问这个问题,三面也是)  

蚂蚁金服 Java 岗三面(大都聊人生):

        
  1.  项目中用的中间件的理解(Dubbo、MQ、Redis、kafka、zk)服务器雪崩是怎么造成的?    
  2. 之前有这样的经历吗?    

  3. 怎么防备?    

  4. 高并发架构的设计思路以前项目中遇到的最大问题和解决策略生活中遇到的最大的挫折生活中遇到的最大的令你最有成就感的事情你有什么职业规划    

读者福利

由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴,想要完整面试题目的  点击此处获取文章中提及的pdf和资料