1、中断异常设计出来时做什么用的
怎么处理这种异常
2、author授权是做什么用的,有了解吗
3、http和https
4、threadlocal
5、lock sync cas
6、lock内面的condition的signal方法是干什么用的
7、数据库悲观锁、乐观锁,分布式锁怎么做
8、mysql的唯一索引和联合索引底层实现和区别
9、B树和B+树数据结构,往mysql插入一条数据,B+树内怎么实现
7. 如何解决hash冲突的,以及如果冲突了,怎么在hash表中找到目标值
10、gc算法和gc回收器,讲一下G1回收器
11、Java11了解吗,新出来哪些功能
12、设计一个高性能的秒杀系统
布隆过滤器:
种空间效率高的概率型数据结构。它专门用来检测集合中是否存在特定的元素。听起来是很稀松平常的需求,为什么要使用BF这种数据结构呢?
设计思想
BF是由一个长度为m比特的位数组(bit array)与k个哈希函数(hash function)组成的数据结构。位数组均初始化为0,所有哈希函数都可以分别把输入数据尽量均匀地散列。
当要插入一个元素时,将其数据分别输入k个哈希函数,产生k个哈希值。以哈希值作为位数组中的下标,将所有k个对应的比特置为1。
当要查询(即判断是否存在)一个元素时,同样将其数据输入哈希函数,然后检查对应的k个比特。如果有任意一个比特为0,表明该元素一定不在集合中。如果所有比特均为1,表明该集合有(较大的)可能性在集合中。为什么不是一定在集合中呢?因为一个比特被置为1有可能会受到其他元素的影响,这就是所谓“假阳性”(false positive)。相对地,“假阴性”(false negative)在BF中是绝不会出现的。
缓存击穿:
秒杀一件商品时,缓存失效,导致大量用户请求到达数据库,通过分布式锁并采用阻塞式方法
缓存穿透:
使用布隆过滤器
缓存雪崩:
过期时间添加随机值
网友评论