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接口有更多的功能,可设置为公平锁,可中断,可设置超时时间,支持多条件变量