澳洲留学归来,面试蚂蚁金服Java研发岗,最后竟输给这道算法题

2019年09月27日 澳微帮


个人背景:

澳洲Top3本科,方向Java后端开发,没有大厂的实习经历,今年年底毕业,在学校成绩还算不错。这次秋招投了几家大厂,也均拿到了面试邀约,第一家面试公司就是蚂蚁金服,去之前还是信心满满的,毕竟蚂蚁是做金融这一块的,自己的留学背景应该能够加不少分,却让我万万没有想到的是,前面几面都还挺顺利的,最后竟然输给了一道算法题。

澳洲留学归来,面试蚂蚁金服Java研发岗,最后竟输给这道算法题

蚂蚁金服第一面(电话面)

1.说说简历上的项目

2.根据简历提了一些相关性问题:

  • Servlet和Jsp的本质?它们有什么区别
  • Servlet创建的过程
  • Servlet中的变量是否需要加锁(单实例多线程)
  • 用户数据有没有加密,用了什么加密方法
  • 服务器是否是分布式
  • 数据库是否是分布式,总共有几张表

3.问一些Java基础:

  • 讲讲HashMap的底层实现原理,get的过程发生了什么
  • 讲讲对数据库事务的理解(ACID,隔离级别)
  • 讲讲悲观锁和乐观锁

4.共享屏幕编程:

  • 输入一个长字符串,打印出其中出现的每个词及其出现次数。
  • 分析一下算法复杂度

蚂蚁金服第二面(视频面)

大学期间有哪些印象深刻的计算机课程?

  • 什么是函数式编程,和Java的面向对象思想有什么区别?
  • 按值传递和按引用传递的区别?
  • 方法A调用方法B的过程中方法栈上发生了什么?
  • 栈帧中包含哪些内容?
  • 讲讲HashTable和HashMap的区别
  • 怎么实现乐观锁和悲观锁
  • 讲讲对Volatile的理解
  • 对缓存行了解多少,伪共享知道吗?
  • 平时Linux用得多不,常用的命令?
  • Linux系统运行缓慢的时候你会怎么做?
  • 操作系统Mount一个设备的时候是在做什么?
  • 命令行里按Ctrl-C发生了什么
  • 信号和中断的区别
  • 你有什么问题想问我的吗?

蚂蚁金服第三面(现场面)

  • 你好,做一下自我介绍吧
  • 为什么没有在国外读研的打算?
  • 讲讲你简历上的项目经历吧
  • 你认为国内外的技术环境有什么不同吗?
  • MySQL数据库引擎有了解吗
  • 讲讲数据库的4个隔离级别
  • 数据库索引用了什么数据结构
  • B加树的实现原理,和B树的区别
  • 组合索引了解吗
  • 使用组合索引时有什么需要注意的
  • 给出下列常用的SQL语句,如何建立索引?如果我现在在这个字段上建立了索引,那执行这个SQL语句时会不会用到这个索引?
  • 手撕代码:N个数中取最大的10个数,N > 10000。

最后就问了一道算法题,而我最后也败在了这道算法题上,可能也是因为自己太紧张的缘故,面试官怎么提示我,我就是没想出来,我的答案是反着做一遍,结果是不对的。

算法题如下:

一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆底,直到手机没牌,最后桌子上的牌是从1到n有序,设计程序,输入n,输出牌堆的顺序数组

你们看看这道算法题的答案应该是什么呢?

以上就是这次面试蚂蚁金服的全部真题,面试答案已经整理成文档的形式,另外自己还整理了一套其他大厂的面试资料以及我自己的一个学习路线,有需要的转发此文,然后私信【学习】即可免费领取!

澳洲留学归来,面试蚂蚁金服Java研发岗,最后竟输给这道算法题

收藏 已赞