蚂蚁金服(成都)Java开发一面面经(80min)
牛客上找的内推,应该是蚂蚁金服-支付宝线
一面 8.9 14:00 80min(电话面)
这一面真的是我面过时间最长的了。。面的神志不清(
一开始面试官先聊了一下成都的发展,然后正式开始。
自我介绍大概说了一下实习的情况。
基础
1. 面向对象的三大特征?
继承、封装、多态
追问:多态的好处?在Java中有哪些应用场景?
2. JVM的内存区域?具体介绍一下每个区域的作用。
3. 讲解GC机制?
追问:看过JVM源码吗?
答:没有
4. Spring的特点?
追问:Spring AOP的实现原理?具体应用在哪些方面?举个例子?
5. 项目中的AOP实现防止重复提交具体是怎么实现的?
6. 进程和线程的区别?
7. 进程间通信的方法?
追问:用过哪些?具体怎么调用的?
8. 多线程同时读写会发生什么问题?
9. 死锁是什么?如何避免?
银行家算法。
追问:死锁的必要条件是什么?如何从必要条件上预防?
10. 索引的作用?索引有什么缺点?
追问:使用索引需要注意什么?
11. 事务的特点有哪些?
追问:用过分布式事务吗?
12. 说说数据库的乐观锁和悲观锁?
13. 说说TCP和UDP?区别?分别有什么应用场景?
追问:TCP如何保证可靠性?
答:checksum, ARQ, 流量控制,拥塞控制
追问:流控和拥塞控制选一个详细说一下?
14. HashMap的底层实现?看过源码吗?
这个可算是看过了
追问:再选一种比较熟悉的数据结构,说底层原理和调用接口。
15. 选一种排序算法说说原理?
选了快排。
快排是稳定的吗?最优情况和最差情况的时间复杂度?
实习项目
1. 项目的背景是什么?要达到什么目的?具体是如何实现的?
2. 如何保证重构的正确性?
3. 除了单元测试和性能测试还应该进行一些什么测试?
4. 项目的QPS大概是多少?
5. 怎么判断你的重构是比原来的代码好的?
最后面完告诉我之前笔试0分,如果一面过了的话后面需要再进行一次笔试。。