这次要和大家分享的是我的三次阿里面经,都是二面就凉凉(伤心欲绝~),全部都是Java开发岗,下面就把这三次面试总结在一起,涉及Java+并发+JVM+网络+数据库+算法+框架+数据结构等方面,总共是投了以下三个阿里岗位...

Java
-
重写hashcode()是否需要重写equals(),不重写会有什么后果
-
HashMap底层实现和扩容机制
-
讲一下volatile
-
volatile底层实现
-
static修饰用法和区别
框架
-
用过哪些Java开源框架
-
讲一讲对Spring的理解
-
看过IOC和AOP的源码吗
-
它们底层是如何实现的
-
用过其他什么框架
-
了解过分布式或者微服务的开源框架吗
-
讲一讲对分布式系统模型的理解
-
分布式系统中有一个节点宕机怎么办
-
分布式系统如何实现负载均衡
-
讲一下IOC
-
对SpringBoot的理解
-
Mybatis中#和$的区别
并发
-
自旋锁和阻塞锁的区别
-
公平锁和非公平锁的区别
-
jdk中哪种数据结构或工具可以实现当多个线程到达某个状态时执行一段代码
-
栅栏和闭锁的区别
-
如何使用信号量实现上述情况

JVM
-
新生代和年老代的GC算法分别是什么?
-
标记清除和标记整理的区别
-
了解过CMS收集器嘛
-
讲一下GC算法
-
JVM内存空间
网络
-
解释HTTPs
-
HTTPs为什么要用对称加密+非对称加密,相对于只使用非对称加密有什么好处
-
为什么要三次握手
-
二次握手有什么问题
-
三次握手有哪些缺陷
-
TCP是如何控制流量的
-
发送方发送频率过高造成丢包,TCP是如何解决的
-
讲一下OSI网络架构
-
HTTP在哪一层
-
HTTP报文结构
-
HTTP首部字段
-
HTTPs加密在哪一层实现
数据库
-
给定一个表,其中有三列(员工名称,工资,部门号),找出每个部门工资最高的员工
-
MySQL和Oracle数据库有哪些不同
-
数据库有哪些锁
-
表锁和行锁的区别
-
哪些场景需要加表锁
-
插入一条数据需要加什么锁
-
分布式数据库如何保证数据可靠性
-
了解过MySQL的主从复制吗
-
讲一下三范式
-
InnoDB和MyISAM的区别
算法和数据结构
-
LeetCode 863 二叉树中所有距离为K的结点
-
Leetcode 206 链表反转
-
Leetcode 2 链表相加
-
InnoDB和MyISAM的区别
-
讲一下红黑树
-
红黑节点的个数
-
红黑树的插入删除查询时间复杂度
-
讲一下B+树
-
B+树的插入删除查询时间复杂度
-
讲一下堆的性质及应用场景
-
建堆时间复杂度
-
各种排序算法的时间复杂度及稳定性
最后总结
三次阿里全部二面挂,说不伤心那是假的(躲被子哭唧唧~~),为此下定决心回家好好学习,决定重新“做人”。
首先,我将这三次阿里面试的题目全部分专题整理出来,并附带上详细的答案解析,生成了一份我的阿里之路PDF文档——传送门
其次,还整理了更多我的复习资料。
-
第一个要分享给大家的就是算法和数据结构

-
第二个就是数据库的高频知识点与性能优化

-
第三个则是并发编程(72个知识点学习)
-
最后一个是各大JAVA架构专题的面试点+解析+我的一些学习的书籍资料
还有更多的Redis、MySQL、JVM、Kafka、微服务、Spring全家桶等学习笔记这里就不一一列举出来,有需要我的这些全部复习资料+学习笔记——传送门