面试复盘 | 虾皮后端java二面面经
1、项目
2、hashmap为啥线程不安全
3、讲一下hashmap的扩容
4、如果把hashmap改成线程安全的,你会在哪一步进行操作?
5、在上一题我回答了分段锁,于是:依据什么进行分段?
6、CAS的弊端?空耗的是什么资源?空耗时CPU指令的操作过程?
7、hashmap为什么要引入红黑树?为什么不是直接数组+红黑树?
8、如何利用反射创建一个对象?
9、抽象类和接口
10、重载和重写
11、类加载的过程
12、介绍一下双亲委派模型?都有哪些类加载器?
13、介绍一下redis
14、redis为什么可以抗住高并发?
15、为什么redis使用单线程性能会优于多线程?
16、线程切换产生的开销主要体现在哪里?
17、redis的数据类型
18、zset的底层实现?为什么使用跳表?跳表的结构?
19、redis的过期策略
20、mysql的ACID是什么
21、mysql保证事务隔离性的方式
22、mysql实现事务回滚的两个文件?
23、B树与B+树
24、mysql对B+树做了哪些优化?
25、spring采用了哪些设计模式?
26、spring创建和管理bean有几种方式?
27、bean的作用域
28、手撕:二叉树两个节点的第一个公共祖先
大概50min吧,面试官人很好
#面试复盘##面经##校招##Shopee##Java工程师#