挂了
2023.3.8
当时面下来感觉回答的还可以,第一次面试下来回答的这么好,两个面试官,结束后面试官说主管在开会来不了,让我先回去等消息,我以为过了。
但后面复盘下来发现,基础回答的还行,但项目经历一般,线程池这块没回答好,而且细细想来,当时就应该是挂了,主管在开会只是个借口罢了。
注: ----- 以下答案不再更新(考虑删除),统一在面试宝典中更新
总结过
我说的hash结构
面试官:为什么?我感觉字符串结构就挺好
讲了下 key对应的hash中封装了线程信息+可重入次数
网络波动,
同类中调用同类方法,避开了事务注解,可以通过aop代理自身类解决。
回滚后捕获,导致spring事务抓不到异常,就会失效
不会滚参数,进行异常设置
方法B如果是新事物或者事务隔离,那方法A就不会回滚
虽然还没背熟,但都说了下
底步采用B+树,说了B+树的特点,但他没问和其他数据结构的区别(这里应该引一下)
不太清楚,说了1000万左右mysql效率会降低,阿里开发手册说500万或者数据大小超过2G
总结过
@Async注解,线程池,消息队列
不清楚
不清楚
面试官:java里面有4个线程池
讲了下核心线程数,最大线程数,超时时间,等待队列,(忘记讲策略了)
面试官:有固定时间,是写在里面的
没了解,但其他是拿头结点
它们的实现思路很类似,主要一个区别体现在扩容方法上,hashMap通过new 一个2倍的新的 HashMap, 然后将数据重新计算hash值,并保存到到新的hashMap中。
redis的hash扩容主要是依靠两个hashTable去完成,一个hashTable用来存储数据,如果达到扩容条件后,会通过rehash方法渐进式转移数据到另一个hashTable。
(多扯点hashmap的东西,说自己比较了解hashMap)
讲了是个抽象类,讲了chl等待队列,循环等待,cas操作,讲了模板方法。
总结过,但没背熟
这里应该讲一下redis的特点,
击穿,雪崩,穿透回答不太熟练
不清楚