度小满Java一面
秋招处女面,面试官很和蔼。
1.自我介绍
2.看你项目用的spring,spring 是怎么启动的
3.spring 怎么扫描Bean
4.怎么保证扫描到所有Bean,如果有其他Bean不在启动类根目录下
5.Bean是单例的还是多例的
6.介绍一下单例模式
7.手撕两种单例模式实现
8.volatile的作用
9.jmm内存模型
10.sychroniezd的底层实现
11.sychroniezd怎么保证可重入
12.sychroniezd锁升级的过程
13.什么是CAS
14.讲讲集合吧
15.ArrayList是线程安全的吗
16.怎么实现ArrayList的线程安全
17.hashmap是线程安全的吗
18.讲讲currenthashmap原理,分别讲了1.7和1.8的原理
19.Java1.8的currenthashmap还有什么优化,红黑树
20.什么时候回转成红黑树
21.如果超过8的元素都放在一个桶上,这时候转成了红黑树,我再将元素移除,红黑树会变成链表吗,如果我反复添加移除,且都在一个桶上,红黑树和链表一直互相转换吗,怎么解决(这点我没答上来,面试官说没事)
22.红黑树查找效率为什么比链表高
23.线程池4个核心参数以及分别的作用
24.往线程池提交线程,整个的流程
25.线程池四种拒绝策略分别讲一下
26.Redis的八种数据结构分别讲一下
27.什么是缓存击穿,缓存穿透,缓存雪崩
28.怎么解决这三个问题
29.什么是布隆过滤器
30.讲讲Redis分布式锁
31.除了Redis你还了解哪些分布式锁(这个没答上来)
32.看门狗机制
33.讲一下tcp三次握手与四次挥手
34.tcp和udp的区别
35.spring注入bean有哪几种方式
36.autowired和resource有什么区别
37.autowired怎么注入有多个相同类型bean
38.哪个注解可以扫描指定路径的bean(这个没答上来)
补充39.介绍jvm垃圾回收算法以及每种算法的优缺点
补充40.老年代和年轻代分别使用什么垃圾回收算法
41.手撕 反转链表