一面
- 详细的介绍JVM的内存模型结构
- JVM最常用的参数配置讲讲
- GC垃圾收集算法、GC垃圾收集器有哪些,以及新生代老生代 分别用什么算法
- 多线程的几种加锁方式详细介绍
- 实现线程安全的方式?ThreadLocal原理?线程池了解吗说说看?自己用线程池怎么定参数?
- HashMap底层实现,哈希冲突怎么解决的
- ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
- MySQL采用了什么存储引擎,为什么?
- 各种排序算法讲一下
二面
- 索引的类型,索引的底层实现原理
- MySQL数据库对应的行锁、表锁、悲观锁、乐观锁的区别
- MySQL数据库引擎?应用场景?查询优化?NoSQL有用或了解吗?
- mysql事务讲一下,事务定义,四个性质,事务并发引起的问题,事务的四个隔离级别
- Spring IoC、AOP,底层代码看过吗,scope作用域为什么要有prototype
- 谈谈你知道的设计模式,知道什么是回调模式吗
- 高并发系统,海量数据分库分表的策略,怎么来实现
- 数据库前面的Redis缓存,如何实现查询的负载均衡
- 为什么选择阿里巴巴?你对待工作的做事原则有哪些?
三面:
- 选一个项目具体讲讲背景、你的职责、遇到的困难以及如何解决(然后各种问细节)
- Redis你了解多少?5种对象,8种数据结构,RDB和AOF持久化区别
- Redis和数据库如何保证数据一致性
- 谈谈你对分布式的理解,分布式场景会面临哪些技术调整和挑战?
- 介绍Nginx负载均衡策略?
- 谈谈异步和同步的使用场景,以及消息队列。
四面(交叉面):
1. 你参与的项目,画出对应的架构设计图。
2. 如果让你设计秒杀,你的设计思路。
3. 谈谈MySQL的查询优化方法,重点谈谈优化步骤。
4. 用过什么代码质量检测工具?谈谈你对代码注释的规范
5. 用过什么JVM调优命令?
6. 如何实现线程安全?java的线程安全类?讲讲线程池
7. 讲讲生产者消费者模式
8. 谈谈你对SOA以及微服务的理解,之间的区别。
HR面:
1. 前面的面试有什么收获吗?
2. 你回顾自己的项目,有哪一点是最遗憾的最想改进的?具体讲讲
3. 你有什么技术方面崇拜的人吗?
4. 为什么要选择阿里,你对阿里的印象是什么样?
5. 你平时是怎么积累技术的?
6. 你在技术方面的未来规划
作者简介
陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》