阿里的面试很注重项目和基础,并会结合一定的实际业务问题进行考察。建议可以做一些拿得出手的项目,这样可以在面试的时候给面试官一个好的印象,并将面试问题引导到熟悉的领域;反之,如果为了项目经验写一些自己参与过但不熟悉的项目,很可能就会遇到一问三不知的情况,建议在写项目经验时只写自己熟悉的。

Java基础是非常重要的考点,其实Java基础要准备的内容并不多,问来问去其实也就是那几类的问题,重点复习集合和并发相关的知识,最好可以对JVM深入理解。Spring框架不用多说,Java后端面试几乎是必考的,多了解一下工作流程,如果有余力的话甚至可以去看看实现的代码或者自己实现一个简单的框架。实际业务问题最好去先了解一下自己申请的事业部是做什么的,多思考一下一般会遇到哪些业务问题。

面试过程前后经历了一个多月的时间,也感受到了阿里工作的忙碌。成功通过五面拿到了阿里的offer,或许只是运气好罢了,但多总结面试经验,多复盘面试问题,一定会在某种程度上增加通过面试的机会,相信各位多多积累经验,也一定可以拿到

一面:

1、hashmap、concurrenthashmap底层实现和区别;

2、spring框架的原理;

3、如何写一个orm框架?

4、hibernate一级缓存和二级缓存,hibernate其他缓存;

5、hibernate事务传播行为种类;

6、springmvc原理;

7、restful的好处;

8、restful有几种请求,表单如何提交put请求?

9、web中安全性问题的考虑,如何防止?

10、web系统整体架构;

11、hibernate如何实现声明式事务?

12、java并发包;

13、volatile;

14、平常都看哪些书?

15、spring底层数据结构?

16、如何进行反射,如何提高反射的性能?

17、如何实现java的代理,为什么需要实现接口?

18、TCP协议三次握手?

19、springmvc用过哪些注解?

20、springAOP可以使用哪些代理,有什么区别?

21、为什么要分三层?

22、mybatis与hibernate有什么区别,为什么不用hibernate直接写sql语句?


二面:

1、hashmap,hashtable区别。

2、是否了解过hashmap的源码?

3、jvm相关,主要是内存分配的过程,何时出发GC,用什么工具或者命令来进行监控?

4、类加载,类隔离机制。

5、spring的ioc,aop,事物,然后顺便提到了数据库的事物,两阶段提交,数据库锁的级别,MySQL数据库锁的特殊之处(页级锁)

6、java线程池里面的arrayblockingqueue,linkedblockingqueue的用途和区别。

7、设计模式相关,主要讲解用途如何保证数据库集群中ID的唯一性,假设每秒钟并发20万次。

8、设计十万并发级别的网站后台,如何计算使用的ecs数目;