蚂蚁金服微贷事业群电话面试分享

偶然机会拿到蚂蚁金服的内推,最终止步二面,在这和大家分享一下面试过程。

一面过程

电话打过来的时候,对方使用公司座机。像是使用网络呼叫,存在问题是声音不清楚,整个交流过程经常会有声音中断的现象出现,还好最终没算影响到整体面试。

开始首先进行了一些自我介绍,然后讲了最近做的项目,使用到的技术栈。项目这部分就不再详细介绍,大概是支付整体系统中在交易层面改造过程。前面项目经验交代了当前使用的技术栈是Java、Spring、Mybatis、Dubbo、MySQL、Redis,所以整个技术面试过程都是围绕着这些技术来考察的。

项目中提到了用到的数据库是MySQL:

  • 数据库用的什么存储引擎?InnoDB;还了解其他存储引擎吗,它们的适用场景分别是什么?
  • InnoDB事务底层实现原理是什么?日志有哪几种类型,分别作用是什么?
  • 事务的几种隔离级别,默认是哪一种?
  • InnoDB是怎么解决并发一致性问题中的不可重复读?
  • 幻读的场景是什么?怎么解决幻读问题的?
  • MYSQL有哪些锁,分别在什么操作场景下会用到这些锁?

项目中提到用到的语言是Java:

  • sychronized锁和Lock锁区别,从实现方式、效率方面讲讲你对它俩的理解;
  • hashmap与hashtable、concurrentHashMap区别,从底层实现、线程安全、扩容过程角度讲一下;
  • Spring Bean生命周期,从初始化到销毁过程讲一下?
  • Spring AOP底层实现?动态代理;CGLIB和JDK动态代理的区别?

项目中提到用到过Redis:

  • Redis有哪些数据类型,常用的是哪一个,Redis 中的String有什么优势?
  • Redis 数据淘汰策略有哪些?
  • 过期键是如何删除的?

然后就是一些基础性的问题:

  • TCP/IP 三次握手与四次挥手过程,五层模型?
  • HTTP与TCP区别?

二面过程

二面电话打过来的时候大约在下午五点,没有提前通知。这次使用的是私人手机呼叫,对方非常客气,说占用您30分钟的时间,我们接着聊一聊。
面试开始还是先介绍一下当前做的项目,讲一下内部使用的技术栈以及当前项目整体背景;项目中提到当前用到了一个Saga思想来处理分布式事务问题,面试官随即让讲一下数据库XA、TCC等常用解决方案的实现原理,并结合当前使用的Saga技术进行比较。

开始技术面试:

  • 谈谈你对IOC以及AOP的理解,解释一下AOP实现过程;
  • IOC容器的启动过程做了哪些工作?
  • 线程池有哪些参数,分别有什么作用,线程池的运行原理,四种线程池区别?
  • 线程状态由哪一种,各个状态之间是怎么流转的?
  • 数据库用的什么?MYSQL。什么存储引擎?InnoDB。
  • MYSQL底层索引存储的数据结构什么?B+树与B树的区别,优点是什么,结合磁盘读写结构说一下为什么是B+树这种数据结构?

问了一道场景应用题:

  • 数据库有种100万条数据,已经在相关列加了索引,现在继续插入100万条数据,是直接插入吗,还是提供一个方案来优化数据插入?

总结

面试岗位是Java初级开发,题目相对比较简单。由于准备不够充分导致二面几个基础性问题回答不是很好,所以终止在二面。希望其他同学在准备面试阿里这种大厂的时候,能够吸取教训,确保基础问题上不丢分。

猜你喜欢

转载自blog.csdn.net/weixin_42677165/article/details/90040110
今日推荐