一面:

1、首先确认对阿里的意向度

2、其次面试官一般会针对您所做过的项目来做具体技术的交流,会比较关注个人对项目细节是不是掌握到位。

3、主要考察java的技术基础和原理,比如Spring框架以及数据库和JVM三个方面。

4、也会交流到分布式、线程池的实现等等。

5、重点考察是不是有比较钻研技术和技术上的亮点

二面:(技术面)

1、介绍一下自己最近做的一个典型的项目;根据项目深入的了解技术实力,了解你的知识面,了解你的问题解决能力以及技术灵活运用能力。也通过这一过程考察团队合作能力、学习主动性和创新性。

2、Java内存结构,spring的aop的实现方法,java数据库问题定位和性能调优;

4、关于Java异常的续承层次结构,讲述异常的续承关系;

5、java中重载和重写有什么区别,分别用什么关键字;

6、关于分布式消息队列,分布式缓存;

7、关于hashmap源码实现,jdk

8、关于设计模式,uml,jvm 内存回收机制问题

9、java线程如何启动?java中加锁的方式有哪些,怎么个写法?

9、对乐观锁和悲观锁的理解;

10、ORACLE中的SQL如何进行优化,都有哪些方式?事务有哪些特性,在ORACLE中隔离有哪些级别?

11、手撕代码。牛客题霸上的原题,可以去看看:NC78 反转链表。

三面:

会涉及到相关的技术问题,大部分是对你的整体价值观做宏观的把控(比如上进心,责任心,心态,工作激情等)

1、在项目中遇到了哪些问题,自己是如何解决的 ;

2、目前系统支撑的用户量是多少,假如用户量提升10倍,系统会出现什么样的问题,如何重新设计系统。这里主要是想了解你的问题预见能力以及问题解决能力,考查思路。

3、使用memcached是一个什么样的原理

4、如何存放数据到memcached集群中,介绍一下这个过程。跟进的问题,讲一下一致性哈希算法的实现原理。

5、JVM中堆是如何管理的,JVM的内存回收机制,介绍一下

6、分布式事务实现方式

7、热点账户问题(项目中有就会问)