朋友开发六年多,从一个中游的公司跳槽的阿里P7,其实这六轮的面试下来整体感觉还是不错的,在这之前我其实面试的其他公司的时候也很好。
第一轮:团队面试
第一轮基本上是你的团队成员面试你,是和你同级或者高你一个P的师兄来面你,主要还是讲自己简历上的做的项目,这里需要你很熟悉自己的项目才行,我个人觉得这里你要把项目里你的角色做了什么没做什么讲清楚,然后最好能把自己做的那部分重点展开来讲,然后面试官会从你讲的内容里挑一些具体来问你,这部分就因人而异了,知道的说不知道的别瞎说。
第二轮:主管面试
这一面我的面试官还是让我主要介绍简历(可能因为我是社招,有项目经历他们比较感兴趣吧),然后我就又讲了一遍。都是他们听见啥感兴趣的就会问你是“怎么实现的,为什么这么实现,有没有更好的实现方式”这三个问题。这一轮对面最少都是P8级别的人了,千万可别不懂装懂的乱说呀。还是那句话,知之为知之,不知为不知,是知也。
第三轮:交叉面试
这一面基本是找个其他部门和你将来的主管平级的leader来面你一遍,防止前面自己部门面试作弊嘛,基本套路和二面差不多,但是会多问你一些基础知识和编程能力上的事,主要还是以考核你为目的,肯定不是为了难为你的,所以,好好加油表现出你自己就行。
第四轮:代码面试
这一面的面试是给你一个在线网站,然后你和你的面试官一起登陆上去,共享web页面,然后他给你出题,你来现场写代码,伪代码就行,然后你再给他讲一遍你的逻辑就ok了。这一面没什么好讲的,写代码嘛,是骡子是马拉出来溜溜咯。出的题不会很难,我答的是两道,一道给我半小时,第一道是给你一个shell命令,执行的功能大概就是读取一个日志文件,然后根据日志里的某一字段排序,然后取前五,输出。
第五轮:boss面试
到这一面的时候基本就稳了,当然我也见过挂的。这一面就是你的主管的主管来面你了,我当时还是先讲项目,然后挑重点的问,不过和二三面明显的区别就是他会问你更高层次的解决方案,不在拘泥于你做的那一点东西,会让你从整体上或者部分整体上讲清楚你项目的解决方案以及你自己的思考(上面的那三个问题),会让你尝试给出更好的解决方案,并解释原因。
我个人感觉这一面更多的是考验你的全局观,你要是一直拘泥于自己的小天地,那估计会吃亏的。当然,面试分人的,有的非技术出身的主管就是和你聊聊天谈谈人生理想什么的,你要是不match也会被淘汰。
第六轮:HRG面试
谈人生谈理想谈三观谈薪资。
下面分享一下在准备面试阿里的这段时间里我自己准备的面试题的总结(其实大家大部分面试中遇到的问题,在这套面试题中都是涵盖的)
MyBatis面试题
MyBatis这一部分我是27道题,可能这一部分的面试题稍微偏基础一些,甚至有些面试根本不会用到。
ZooKeeper面试题
ZK总共28道题,ZK问的有基础,也有比较难的。
Dubbo面试题
Dubbo这一部分总共30道题,面试提问笔记多的就是Dubbo和Dubbox、SpringCloud进行对比和分析,当然这些面试题我也整理了很多。
Elasticsearch面试题
24道题,这一部分和下一部分可能面试的比较少,所以相关的面试题也相对少一些,但是有一道题很有意思,是让你介绍你们的电商搜索的整体技术架构。
Memcached面试题
23道题
Redis面试题
40道Redis面试题,Redis底层运行原理、分布式锁、缓存、限流、秒杀等等这些部分问的还是比较多的,也需要你自己有一个完整的调优思路才可以。
Java并发编程(一)
并发编程第一部分75道题,并发编程这一部分就不用多说了吧,必考题。
Java并发编程(二)
第二部分是48道题。
Java面试题(一)
Java基础部分,基本面试中一面的大部分题都涵盖在里面(我还特意细分了2大部分,我细心吧!)
Java面试题(二)
Spring面试题(一)
什么是spring?
使用Spring框架的好处是什么?
Spri ne由哪些模块组成?
核心容器(应用上下文)模块。
BeanFactory一BeanFactory 实现举例。
XMLBeanF actory
解释AOP模块
解释JBC抽象和DAD模块。
解释对象/关系映射集成模块。
解释WEB模块。
Sprinr配置文件
什么是Spring IOC容器?
IOC的优点是什么?
Appli cati onContext通常的实现是什么?
Bean工厂和Application contexts 有什么区别?
一个Spr ine的应用看起来像什么?依赖注入
什么是Sprine的依赖注入?
有哪些不同类型的I0C (依赖注入)的方式?
哪种依赖注入方式你建议使用,构造器注入,还是Setter方法注入?
什么是Spring beans?
一个Spring Bean定义包含什么?
如何给Spring容器提供配2置元数据?
你怎样定义类的作用域?
解释Spr ing支持的几种bean的作用域。
Spring框架中的单例bean是线程安全的吗?
解释Spr ing框架中bean的生命周期。
哪些是重要的bean生命周期方法?你能重载它们吗?
什么是Spri ne的内部bean?
在Spring中如何注入一个java集合?
什么是bean装配?
什么是bean的自动装配?
解释不同方式的自动装配。
自动装配有哪些局限性?
你可以在Spring中注入一个nu11和一个空字符串吗?
什么是基于Jav的Sprine主解配置?给一些注解的例子。
什么是基于注解的容器配置?
怎样开启注解装配?
@Required注解
@Autowired注解
@Qualifier注解
在Spr ing框架中如何更有效地使用JDBC?
JdbeTemplate
Spring对DA0的支持
使用Spr ing通过什么方式访问Hi bernate?
Spring支持的0RM
如何通过Hi bernateDaoSuppor t将Spr ing和Hibernate结合起来?
Spring支持的事务管理类型
Spring框架的事务管理有哪些优点?
你更倾向用哪种事务管理类型?
解释AOP
Aspect切面
在Spring AOP中,关注点和横切关注的区别是什么?
连接点
通知
切点
什么是引入?
什么是目标对象?
什么是代理?
有几种不同类型的自动代理?
什么是织入。什么是织入应用的不同点?
解释基于XML Schem方式的切面实现。
解释基于注解的切面实现
什么是Spr ine的MYC框架?
DispatcherSerlet
WebApplicati onContext
什么是Spring MVC框架的控制器?
Spring面试题(二)
微服务面试题
Linux面试题
Spring Boot面试题
ring Cloud面试题
RabbitMQ面试题
kafka面试题
互联网Java工程师面试题
... ...