当时面试能记下的就这些了,可能不太全请见谅:
一面
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、如果公司需要你加班你有问题吗?
总结
- 在面试之前一定要对项目很熟悉!项目的优化点、技术栈、架构图等等都要搞清楚。
- 阿里面试总体感觉比较重视基础,所以 Java 那些基本功一定要扎实。然后,网络部分也要格外重视。
- 阿里面试官对于一些问题问的非常深入。
面试题答案整理
关于以上的面试题答案,因为内容太多没能展示出来。不过笔者已经整理打包好了,有需要获取到文中资料 借鉴学习的朋友(见文末)
该如何学习?
笔者在这里分享一份阿里大牛的手写笔记《Java面试手册》。这份笔记包括有:性能优化、微服务架构面试、并发编程高级面试、开源框架面试、分布式面试五个专栏
还有相应的实战笔记:
性能优化
微服务架构
分布式
开源框架