字节剪映二面

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐

12-04 22:31
武汉大学 Java
点赞 评论 收藏
分享
1.实习介绍2.首先我们去新建一个单链表吧。单项链表对,你要先自己建一个单链表,然后呢,我们再写一个方法去,相当于你就是写一个方法是创建单链表,然后再写一个方法是反转单链表,然后你最后可以给一些测试用例,再 print 结果看看你这个反转的效果是怎么样。3.如果让你去设计测试用例,就是比如说这个代码是别人写的,对吧?然后它的功能就是反转单链表,那让你做一些用例设计,来看看这个代码存不存在一些小的 bug 你会涉及哪些用例?4. 你现在站在一个 Y 字形的岔路口,就像字母 Y 那样。在这个岔路口的交叉点,你和一个村民正好都站在那里,这个岔路有两条路,一条通向“真话村”,一条通向“假话村但你不知道哪边是哪边,比如左边可能是通往真话村,也可能是通往假话村。那这个村民,他肯定是来自其中一个村子,但你也不知道他到底是哪边来的。唯一知道的是,如果他来自真话村,他就只会说真话;如果他来自假话村,那他就只会说假话,也就是总说反的。现在你有一个机会,你可以问这个村民一个问题,他会给你一个回答。你只能问一次。你的任务就是,通过他的那个回答,判断哪条路才是去真话村的。5.MySQL数据库一般有慢查询是什么原因6.说一下熟悉的Linux命令7. 比如说线上出现一些偶发性的接口超时一般怎么样去定位或者复现这个问题。8. 有对 AI 有一些了解吗?比如说现在基本上还是有挺多,就智能化生成测试用例的一些方式,这个有了解吗?9. 比如说,假设我们现在还是做了一个服务端的用例设计,就比如说我们有一个 APP,它有一些金币充值吧,就是说白了,就是拿真实的人民币去买金币,然后金币可以在这个 APP 里进行一个生态的消费,我们这个金币充值接口的话入参有套餐 ID 你可以理解为有 abcd4种,比如说第一种100金币是十块钱200金币,比如说是18块这样的不同的一个套餐的选择,这是第一个参数,然后第二个参数你可以理解为是票据 ID,就是当你去购买了之后,你真的要把金币充值入库的话,一定是你的那个。想想有哪些重要的测试用例?
查看8道真题和解析
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

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