做开发已经5年多,两个月七面阿里淘系面经,已拿offer定级P7+(Java岗)
做Java开发5年多了,从年前开始准备冲大厂,人算不如天算,今年受到疫情影响,面试时间一拖再拖。。。。。不扯了进入正题
先说感想吧,总结起来:面试官喜欢抛出一个大点,看你能讲多广多深(下面手打的内容全靠我回忆所写,不足之处敬请谅解)
而且阿里还有一个毛病,每一次面试中间相隔的时间至少一个星期,所以七次面试前前后后大概花费了2个多月的时间。
可能还有部分人好奇,为什么定位P7+拿P8的工资,这里我解释一下,阿里社招的最高岗位基本都是P7,升P8是需要熟悉或者说精通阿里内部的技术的。(PS:阿里P8社招阵亡率90%)但是有一些人技术很厉害的社招进来的人基本上就是定位P7+拿着P8的工资,过两年就升P8了。。。。。。进入面经正题:
一面: 90mins
- 讲项目
- 讲一个集合框架整体框架
- 分Collection和Map两大类全部讲一遍,每一个接口和对应实现类,他们类各自的特点,性质,基本参数,能讲多深讲多深
- arraylist和hashset区别
- 为什么hashmap要在8的时候树华
- 根据泊松分布概率(源码注释里写了)
- hashmap线程安全的方式
- hashtable和concurrenthashmap的各自特点,能讲多深讲多深
- 为什么hashtable被弃用了,cch1.7之前和1.8之后的区别
- 锁的分类
- 乐观锁、悲观锁、自旋锁、读写锁、排它锁、共享锁、分段锁等等各自特点,以及它们在java中具体的实现方式
- Spring IOC的底层实现
- XML+dom4j+工厂+单例
- 索引不适用的条件
- 索引列上有函数,不满足最左前缀,使用了不等号,使用了范围查询等等
- 索引的分类
- B-Tree索引,Hash索引,全文索引,单值索引、唯一索引、复合索引、聚簇索引、非聚簇索引等等,以及它们各自的特点
二面:40mins
- 讲项目
- 线程池了解多少
- executors创建的几种线程池,直接new ThreadPoolExecutor,7个参数
- 线程池拒绝策略分别使用在什么场景
- Spring AOP的底层实现
- 动态代理,newProxyInstance,cglib,ASM
- 讲一下代理模式
- 动态代理,静态代理
- 你都了解什么设计模式,他们在JDK中如何体现的
- 工厂,责任链,观察者,建造,代理,单例,原型等等在JDK中对应的体现。。。
三面coding:2h
- 千万级数据量的list找一个数据(多线程),抢红包
四面:50mins
- 讲项目
- 讲一下JVM堆内存管理
- 栈上分配->TLAB->新生代、老年代->可达性分析->GC算法->所有垃圾回收器及其优缺点和特点
- 那到底多大的对象会被直接扔到老年代
- G1两个region不是连续的,而且之间还有可达的引用,我现在要回收其中一个,另一个会被怎么处理
- 听说过CMS的并发预处理和并发可中断预处理吗
- 平常怎么学习的和职业规划
五面coding:2h
- 百万级int数据量的一个array求和(fork/join)
六面交叉面:20mins
- 深挖科研项目
七面hr:20min
- 聊人生,聊理想(老套路)不扯淡基本没问题。
- 我6月8号入职,给大家分享一些大厂面试真题吧,这也是我自刷的题目,希望大家都能进心仪的大厂~
先上个汇总图吧
北京-百度-Java中级
杭州-蚂蚁金服-Java高级
杭州-蚂蚁金服-资深工程师
上海-拼多多-Java高级
上海-携程-Java高级
深圳-腾讯-Java高级
深圳-丰巢科技-Java高级