一面:
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、热点账户问题(项目中有就会问)