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

8. 奈雪的茶面试复盘

优质
小牛编辑
266浏览
2023-03-28

8. 奈雪的茶面试复盘

结果:

挂了

时间

2023.3.8

心得

当时面下来感觉回答的还可以,第一次面试下来回答的这么好,两个面试官,结束后面试官说主管在开会来不了,让我先回去等消息,我以为过了。

但后面复盘下来发现,基础回答的还行,但项目经历一般线程池这块没回答好,而且细细想来,当时就应该是挂了,主管在开会只是个借口罢了。

注: ----- 以下答案不再更新(考虑删除),统一在面试宝典中更新

为什么要用分布式锁?

总结过

分布式锁用的redis的哪种结构?

我说的hash结构

面试官:为什么?我感觉字符串结构就挺好

讲了下 key对应的hash中封装了线程信息+可重入次数

分布式锁可能会失效的场景是什么?

网络波动,

spring声明式事务失效场景有哪些?

同类中调用同类方法,避开了事务注解,可以通过aop代理自身类解决。

回滚后捕获,导致spring事务抓不到异常,就会失效

不会滚参数,进行异常设置

嵌套事务有什么影响?

方法B如果是新事物或者事务隔离,那方法A就不会回滚

MVCC了解吗?

虽然还没背熟,但都说了下

说一下InnDB 的索引结构?

底步采用B+树,说了B+树的特点,但他没问和其他数据结构的区别(这里应该引一下)

数据量多少适合分库分表?

不太清楚,说了1000万左右mysql效率会降低,阿里开发手册说500万或者数据大小超过2G

索引失效有哪些情况?

总结过

怎么进行异步处理?

@Async注解,线程池,消息队列

@Async 注解使用默认线程池还是自定义线程池?

不清楚

@Async注解失效情况,以及循环依赖情况是什么?

不清楚

说一下常见的几个线程池?

面试官:java里面有4个线程池

讲了下核心线程数,最大线程数,超时时间,等待队列,(忘记讲策略了)

线程怎么释放的?

面试官:有固定时间,是写在里面的

线程池怎么从等待队列中拿任务的?

没了解,但其他是拿头结点

redis的Hash和java的Hash有什么区别?

它们的实现思路很类似,主要一个区别体现在扩容方法上,hashMap通过new 一个2倍的新的 HashMap, 然后将数据重新计算hash值,并保存到到新的hashMap中。

redis的hash扩容主要是依靠两个hashTable去完成,一个hashTable用来存储数据,如果达到扩容条件后,会通过rehash方法渐进式转移数据到另一个hashTable。

(多扯点hashmap的东西,说自己比较了解hashMap)

AQS有了解吗?

讲了是个抽象类,讲了chl等待队列,循环等待,cas操作,讲了模板方法。

说一下 synchroinzed 锁膨胀?

总结过,但没背熟

为什么要使用redis?

这里应该讲一下redis的特点,

击穿,雪崩,穿透回答不太熟练

布隆过滤器的原理和局限性?

不清楚

 类似资料: