成都蚂蚁金服暑期实习Java后台开发面经(已收到OC)
更新:
牛客网也太灵了吧,才写完面经,还没过几个小时就收到了OC,沃德法,厚礼谢特!!!
渣985本硕软件工程,有过两次实习经历(半年互联网,半年外企),一个省级重点科研项目。
许愿意向书!!!
一面 技术 2020/3/26 36min
自我介绍
学过哪些Java的东西?
Java基础,JVM和一些框架Spring mvc,Spring boot和Spring cloudArrayList和LinkedList有什么区别?有没有什么数据结构结合了ArrayList和LinkedList的优势?讲讲跳跃表的结构?
先讲了HashMap(ArrayList + LinkedList),面试官说再来个,我就说的新版本Redis的list底层重构为了quicklist,即LinkedList + ArrayList优势结合。
JVM内存模型的结构?讲讲堆空间?为什么需要分代回收?什么样的对象进入老年代?
老年代的垃圾回收器Parallel Scavenge(标记-整理)和Concurrent Mark Sweep(标记-清除)你最常用的集合类是什么?HashMap底层是什么?ConcurrentHashMap和HashTable底层有什么区别?
什么是线程安全?可见性指的是什么?Synchronized和ReentrantLock有什么区别?lockInterruptibly()是怎么实现的?
线程安全就是指的是保证线程运行的原子性、可见性和有序性。
可见性是指当某个线程修改了共享变量的值,其他线程能否立刻知晓。
补充:ReentrantLock使用、底层、AQS
数据库用过么?用的什么引擎Innodb还是MyISAM?Innodb有什么特性?聚簇索引和非聚簇索引的区别?事务的特点?什么是隔离性?事务的隔离级别?用过什么隔离级别?为什么不用读未提交?不可重复读指的是什么?
讲讲Innodb的索引?B树和B+树的区别?
双11大促的时候怎么设计一个高并发接口?
补充:高并发接口幂等性?特别是update操作,需设计幂等性业务逻辑。Insert操作有乐观锁、Token、悲观锁机制。
补充,商品超发怎么解决?平时怎么学习新知识?遇到问题怎么解决?最近在看什么书?实习时间?用了多久的Java?有什么要问的?
二面 技术 2020/3/30 46min
- 死扣项目,主要的贡献,项目难点?项目还可以优化的点?
- 乐观锁和悲观锁是什么?在哪儿用过悲观锁,怎么用的?
- 讲讲线程池?
- ArrayList和LinkedList了解过么?他们是线程安全的么?
都不是,不然JUC不会实现CopyOnWriteArrayList和ConcurrentLinkedQueue - 看过什么源码?讲讲Spring AOP的原理?
- 平时怎么学习?遇到困哪怎么解决?
- 偏好的Base(工作地点)是哪?
感想:这个面试官有点精,我故意带了很多方向,他都不跟着深入,应该是知道我精心准备过的。
三面 技术 2020/4/3 43min
- 自我介绍
- 项目介绍,如何优化
- HashSet是如何保持元素有序的?HashMap的resize()流程?
HashSet是无法保持元素有序的,应该是故意这样问的,其底层是HashMap,可以采用LinkedHashSet,其底层是LinkedHashMap - AOP是怎样实现的?
感想:当时被吓住了,忘记了部分面试题了,不好意思。真的啊,没有反问环节,当时尿都吓出来了,最后给的评价是还可以花费更多的精力深度优化项目,更好的发挥自己经历过项目作用。
四面HR 2020/4/15 27min
- 自我介绍
- 是哪个地方的人?
- 为什么想留在成都?(因为去过北京实习)
- 觉得自己的英语能力怎么样?(因为去年考了个雅思)
- 自我评价下自己性格?
- 为什么要选择蚂蚁金服?为什么要选择这个部门?
- 最近的一次实习我自己做了什么,项目成果?领导的对我实习的评价?
- 其他公司面试的怎么样了?你选择各公司Offer的优先级?
感想:技术面的时候紧张的不行,HR面的时候发现自己咋这么能说哈哈哈。