招银网络科技一面,就记得这些

1、短链接创建之后是先写数据库还是先写入缓存
我答的先写数据库再写缓存,面试官问写缓存这个过程失败了导致请求都落到数据库中怎么办?
解决思路:①先写缓存再写数据库(我答的这个,面试官说这个) ②写缓存失败,可以用重试机制(基于消息队列的方案,基于canal的方案)
2、HashMap什么时候红黑树转链表
红黑树大小减到6转链表
3、我看你限流用的阿里的sentinel组件,阿里的一些组件也有bug,如果只给你redis,你怎么实现限流呢
答:还是使用滑动窗口算法,使用redis的有序集合来存放每个小窗口内的请求数,score存时间戳
面试官说你的方案数据存储和计算都在redis里面,有没有更快一点的
他说可以数据存redis,计算时把数据加载到本地内存算,会快一些
4、线程池设置的这个存活时间,这个时间过了之后,线程会销毁吗
核心线程不会销毁,只有非核心线程才会被销毁
反问核心线程也可以设置超时时间,你知道吗,不知道~
查了下是allowCoreThreadTimeOut(true),核心线程在超出 keepAliveTime 后可以被销毁,
5、线程池怎么销毁核心线程
setcorepoolsize方法动态调整核心线程数、关闭线程池、设置allowCoreThreadTimeOut(true)
6、为什么Java已经有synchronized,还要Lock接口
Lock接口有更多的功能,可设置为公平锁,可中断,可设置超时时间,支持多条件变量
全部评论
uu约二面了吗
点赞 回复 分享
发布于 09-12 22:56 湖南
短链接项目指的写吗
点赞 回复 分享
发布于 09-14 15:17 四川

相关推荐

微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
10-14 13:25
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
6 31 评论
分享
牛客网
牛客企业服务