当时面试能记下的就这些了,可能不太全请见谅:

一面

1、HashMap和ConcurrentHashMap;

2、再谈谈一致hash算法?

3、乐观锁还有悲观锁;

4、可重入锁和Synchronize?

5、事务四大特性?

6、事务的二段提交机制?

7、聚簇索引和非聚簇索引?

8、用自己的实践经历说一下索引的使用场景(说一个就要举一个例子)?

9、当前读和快照读?

10、类加载过程?

11、双亲委派机制及使用原因?

12、说说GC算法?

13、对于未来你有什么职业规划?

二面

1、说说自己参与的项目,技术难度在哪里?

2、Collections.sort底层排序方式?

3、排序稳定性?

4、具体场景的排序策略?

5、Http请求过程,DNS解析过程;

6、三次握手四次挥手;

7、简述线程池和并发工具的使用?

8、数据库索引原理;

9、频繁老年代回收怎么分析解决?

10、Spring IOC、AOP?

11、讲讲SpringBoot/SpringCloud的一些应用?

12、阻塞队列不用java提供的自己怎么实现,condition和wait不能用?

13、拥塞窗口讲一讲,为什么要用慢启动算法?

14、你有着什么样的职业规划?

三面

3、Http与Https的区别在哪里?

4、Https的加密方式

5、线程池的核心参数和基本原理

6、线程池的调优策略

14、负载均衡的原理?

15、Redis的数据一致性问题(分布式多节点环境 & 单机环境)?

16、讲讲docker容器?

17、如何实现何高并发下的削峰,限流?

四面

1、项目中用的中间件的理解(Dubbo、MQ、Redis、kafka、zk)

2、服务器雪崩是怎么造成的?之前有这样的经历吗?怎么防备?

3、高并发架构的设计思路;

4、以前项目中遇到的最大问题和解决策略;

5、生活中遇到的最大的挫折是什么?

6、生活中遇到的最大的令你最有成就感的事情是什么,可以说一下吗?

7、你有什么职业规划?

五面(HR)

1、为什么要用你,你与其他竞争者比较优势是什么?

2、你从上一家公司离职的原因是什么?

3、你对于薪资有什么期望?

4、关于公司的情况,你有什么想问我的吗?

5、如果公司需要你加班你有问题吗?

总结

  1. 在面试之前一定要对项目很熟悉!项目的优化点、技术栈、架构图等等都要搞清楚。
  2. 阿里面试总体感觉比较重视基础,所以 Java 那些基本功一定要扎实。然后,网络部分也要格外重视。
  3. 阿里面试官对于一些问题问的非常深入

面试题答案整理

关于以上的面试题答案,因为内容太多没能展示出来。不过笔者已经整理打包好了,有需要获取到文中资料 借鉴学习的朋友(见文末)

 

该如何学习?

笔者在这里分享一份阿里大牛的手写笔记《Java面试手册》。这份笔记包括有:性能优化、微服务架构面试、并发编程高级面试、开源框架面试、分布式面试五个专栏

 

还有相应的实战笔记:

性能优化

 

微服务架构

 

分布式

 

开源框架