北京蚂蚁金服Java一面面经

  • 一面:电话面,面试官是男的,原定面试30-40分钟,总共面试56分钟。先来说说我的感觉吧,面试官的问题总体来说比较不错,问的也比较广泛,偏向于校招的问题,但是面试官的表述我感觉不是很好,很多地方问的很泛白(也可能是我的姿势水平不够理解不到),然后根据我的思路回答好像面试官觉得达不到自己想要问的问题。面试官看了我之前写的京东一二面,所以一些问题也就没有问了。
  1. 自我介绍。
  2. 大学期间学过哪些语言。(C、C++、Java);简单概述一下他们之间的区别。(哔哔哔一问一答,问比较多,可能是看理解的程度)
  3. 是否还学过其他语言。(略学过Kotlin,简述了它,貌似面试官不懂)
  4. 大学平时安排,平时学习的方式(书籍、视频、刷题,看起来是了解平时的情况),刷题的方式。
  5. (提到了刷题)在“多路数组中寻找第K大小的数”。(这道题我面试突然有点懵了,因为面试的时候还没有遇到过问算法的,我简单说了一下单路的寻找的方式,快排的思路,然后面试官提醒了一下可以用数据结构,我恍然大悟到堆,然后回答了。但是现在我写面试的时候,发现我的确做过这道题,淦!),接着又问了堆的数据结构。
  6. 问了比较偏实践的算法,操作系统内存管理中的缓存页中的算法LRU,在Java里面怎么去实现,(临场发挥,用了LinkedList来实现,然后提到了LinkedHashMap中的LRU模式,面试官好像没有遇到过,问我是否使用过,是),LinkedList中查询复杂(O(n)),怎么减少复杂度呢(Map),怎么实现(还是吧LinkedHashMap说了一下,这里斡旋多次,我没理解面试官意思,面试官觉得我回答不到他点上)
  7. 简述一下进程,线程,协程之间的关系和区别。协程更多会在什么场景。(这里我回答了我的答案,但是没有回答到面试官的点上,提示了IO密集型,CPU密集型,我成功避开了正确答案)
  8. 数据库的事务。(ACID)什么场景下用到事务。数据库的锁。两个线程进行操作的话,通常使用什么(乐观锁)(这里还是同样的情况,我理解不到对面试官问题的)
  9. 提到了锁,Java中式怎么实现乐观锁的balabala(CAS,我还是理解不到面试官要把啥问出来,反正我能说都说,这一点我觉得我没啥问题),哪些地方使用到了CAS(JUC,AtomicLong,底层一点的,偏向锁,轻量级锁,我还是把我能说的都说完)
  10. 简述Synchronize、Lock、CAS的区别。
  11. JMM与并发的关系。(完全没理解面试官的想问啥,我跟着自己的思路回答的,但是面试官觉得达不到他的点上),JMM是怎么实现的。volatile关键字。(这一点我个人觉得我没啥问题,但是面试官还是觉得回答不到点上,说叫我下去可以去深入了解一下,我反问面试官的理解,面试官是拒绝回答的,说可能每个人理解不一样,我就有点纳闷了,这里抱怨一下)
  12. TCP和UDP的区别及使用场景。拥塞控制(这里我搞忘了,答案是:慢启动+拥塞避免、快重传+快恢复)。

最后是等,从面试官的语言语气来说,投北京蚂蚁好像有点惊讶(很多是杭州)。这总体来说,这次面试不报太大的希望,面试体验感觉不是很好(自己问题),我甚至有点怀疑面试官的提问表述水平和面试官经验(但不怀疑姿势水平)

你可能感兴趣的:(北京蚂蚁金服Java一面面经)