字节剪映二面

1. 你两个练手项目中遇到过什么难点?或者有思考过参考资料范围外的问题吗?

2. 缓存不一致出现的场景、原因及具体解法是什么?

3. 先更新数据库再删除缓存的策略,存在哪些边界 case?会怎么发生?

4. 延迟双删的第二次删除是在什么时候?该怎么设计逻辑?

5. 删掉缓存后,只允许第一个请求读数据库并更新缓存,其他请求被锁住,这个设计是为了实现什么?

6. 构建缓存的请求失败了怎么办?

7. 为什么选择让未拿到锁的请求直接返回旧数据,而不是让它们等待锁或重试?这种方案的好处和坏处分别是什么?

8. 构建缓存请求失败时,继续等锁和直接返回旧数据哪种方案更占优?

9. 你实现缓存相关的锁时,用的是什么方式?

10. Java 中 HashMap 的底层数据结构是什么?

11. 直接用红黑树实现 Map 功能是否可行?HashMap(哈希表+开链/红黑树)与全红黑树实现的 Map 各有什么优劣?

12. HashMap 如何解决容量不够的问题?Java 中的扩容是怎么做的?

13. 如何避免触发扩容阈值的那次写操作承担所有数据搬迁开销?

14. 有办法将扩容的开销均摊出去吗?具体怎么操作?
全部评论

相关推荐

评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务