先总结一下
阿里一般四轮面试, 前面三轮技术面和最后一轮大 boss 和 HRG 一起面,最后一轮也很关键。 面 P7 的话除了技术扎实外,要对之前做过的项目有总结和沉淀,对业务一定要有自己的思考,这个在面试前一定要多准备准备,
Java面试的重点:
数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、性能优化、设计模式、Spring框架:分布式相关:Redis缓存、一致Hash算法、分布式存储、负载均衡等,微服务以及Docker容器等。
技术一面(基础为主)
- HashMap链表长度大于8后-定会转化为红黑树吗
- 如场景是, HashMap初始数组长度为8 ,只有第一个元素中有值,且有八个都在一条链表上,其他数组其他七个位置都是空的,这时候为什么要转化为红黑树而不是存放到数组中呢?
- ConcurrentMashMap分段锁之间加了什么锁,读写之间是互斥的吗?
- 三次握手后如果一直不连接会怎样
- volatile的实现原理是怎么样的,它是怎么实现从内存中读取的?
- lock锁的使用,它如果是一个接口,它的实现类有哪些,区别是什么?
- InnoDB的隔离级别是什么,它能避免幻读吗?怎么避免的?
- 索引的底层实现是什么,简单介绍下。
- 类加载的双亲委派模型
技术二面(源码,基础都有,还有些题不记得了)
- 介绍一下spring中的AOP
- mybatis和hibernate的区别与优劣
- redis有哪些数据类型
- 手写一个单例模式
- 用到的技术栈
技术三面(主要从项目入手,主要是解决方案)
- 如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?
- 怎么理解强一致性、单调一致性和最终一致性?
- 分布式锁有哪些解决方案?
- 如何解决Redi缓存穿透的问题?
- Redis hash算法用的是什么?
- Redis集群方案应该怎么做?都有哪些方案?
技术四面
1.手画自己项目的架构图,并且针对架构和中间件提问
2.之后就是和hr谈
经验分享
谈到面试,哪哪都是坑,但是重中之重肯定还是基础(JVM,并发,有一些源码阅读经验加分)为此,也分享出我的面试资料和学习笔记,供大家学习参考一下。Github链接附上,绝对不让您失望!
https://github.com/ThinkingHan/Java-review-gudiegithub.com
后续持续更新文章,可以微信搜索「 码农清风 」第一时间阅读,回复【2020】有我准备的Java高级架构面试解析+知识点笔记。