当前位置: 首页 > 面试经验 >

4.27 阿里暑期二面 后端开发

优质
小牛编辑
81浏览
2023-04-27

4.27 阿里暑期二面 后端开发

也没自我介绍就开始了,
1. String为什么是immutable的,一开始答了string存在方法区的运行时常量池里面,balabala,后来想了一下应该是从线程安全的角度考虑,如果是fianl的话,就没有可见性的问题了(只能读不能改)。
2. mysql innodb索引的数据结构
3. java里面想实现给方法块上锁的话有哪些方法,答了syncroniezd和juc的一些工具类。
4. syncronied和他们的区别是什么,一个是jdk的关键字,一个是工具类(aqs实现的,用了unsafe的cas方法)。
5. voltail关键字。这里我答了,cpu的多级缓存,加了voltail每个cpu的核都会通过总线嗅探看看主存里的变量有没有刷新
然后把自己的副本搞失效,重新拉副本,还答了静止重排序,保证可见性啥的。
6. 这里深问voltail问我知不知道伪缓存。。我根本没听说过呀,然后面试官解释了一下缓存行,这里直接懵逼了学习了学习了
https://www.jianshu.com/p/e338b550850f
6. 讲讲tcp
7. 讲讲hashMap,如果初始化的时候带上一个3怎么初始化(我知道肯定是2^n次,后来后看了一下源码,他会按照最近的2^n次取值,实现的代码用了位运算,极其nb,这里又学习到了)
7. 为什么要三次握手握两次不行吗 这里答了双方都要知道连接已经建立了,两次握手只保证了单方面知道连接建立了。
8. redis怎么做分布式锁的,为什么用redis做分布式锁,为什么不用memcached的。
支支吾吾半天,说了感觉都可以。。后来好心的老哥告诉我要从历史遗留,维护成本,成熟度角度考虑。
历史来看的话我之前的实习组都用的redis做分布式锁我觉得我用memcached代码可理解性不好
维护成本来看的话要维护两套分布式锁是需要增加维护成本的(而且容易发生死锁我感觉)
成熟度的话两套方案我看了都有人用
9. redis的常见问题雪崩,穿透,和击穿可是我记岔了。。面试官让我答了一下解决的方法,然后一下就看出来我在生产的时候没遇到过,背的八股文。。
10. spring循环依赖的问题,这个我就背了八股文,三级缓存。
后面就是聊天了
用时42分钟
还是需要不断地学习啊
竟然还有三面(祈祷三面能过)
 类似资料: