阿里java研发面经,三面共25个问题
首先说下我的感受,阿里非常重视基础,问的不仅宽泛而且比较深入,java基础、数据结构、操作系统、计算机网络、数据库都有涉及;相较于头条,阿里算法问的比较少也比较简单。ps:文末有福利哈
废话不多说,直接上干货:
1、Java容器:List,Set,Map
2、Map的遍历方式
3、HashMap扩容为什么是扩为两倍?
4、Java线程同步机制(信号量,闭锁,栅栏)
5、对volatile的理解:常用于状态标记
6、八种基本数据类型的大小以及他们的封装类(顺带了解自动拆箱与装箱)
7、线程阻塞几种情况?如何自己实现阻塞队列?
8、Java垃圾回收
可达性分析->引用级别->二次标记(finalize方法)->垃圾收集 算法(4个)->回收策略(3个)->垃圾收集器(GMS、G1)。
可达性分析的根结点:
9、java内存模型
10、TCP/IP的理解
11、进程和线程的区别
12、http状态码含义
13、ThreadLocal(线程本地变量),如何实现一个本地缓存
14、JVM内存区哪里会出现溢出?
15、双亲委派模型的理解,怎样将两个全路径相同的类加载到内存中?
16、CMS收集器和G1收集器
17、TCP流量控制和拥塞控制
18、服务器处理一个http请求的过程
19、例举几个Mysql优化手段
20、数据库死锁定义,怎样避免死锁
21、spring的aop是什么?如何实现的
22、面向对象的设计原则
23、策略模式的实现
24、操作系统的内存管理的页面淘汰 算法 ,介绍下LRU(最近最少使用 算法 )
25、B+树的特点与优势
2、Map的遍历方式
3、HashMap扩容为什么是扩为两倍?
4、Java线程同步机制(信号量,闭锁,栅栏)
5、对volatile的理解:常用于状态标记
6、八种基本数据类型的大小以及他们的封装类(顺带了解自动拆箱与装箱)
7、线程阻塞几种情况?如何自己实现阻塞队列?
8、Java垃圾回收
可达性分析->引用级别->二次标记(finalize方法)->垃圾收集 算法(4个)->回收策略(3个)->垃圾收集器(GMS、G1)。
可达性分析的根结点:
9、java内存模型
10、TCP/IP的理解
11、进程和线程的区别
12、http状态码含义
13、ThreadLocal(线程本地变量),如何实现一个本地缓存
14、JVM内存区哪里会出现溢出?
15、双亲委派模型的理解,怎样将两个全路径相同的类加载到内存中?
16、CMS收集器和G1收集器
17、TCP流量控制和拥塞控制
18、服务器处理一个http请求的过程
19、例举几个Mysql优化手段
20、数据库死锁定义,怎样避免死锁
21、spring的aop是什么?如何实现的
22、面向对象的设计原则
23、策略模式的实现
24、操作系统的内存管理的页面淘汰 算法 ,介绍下LRU(最近最少使用 算法 )
25、B+树的特点与优势
福利如下:
https://www.nowcoder.com/discuss/690612