
底层技术
文章平均质量分 80
征途
这个作者很懒,什么都没留下…
展开
-
详解JVM垃圾回收(Minor GC和Full GC有什么不同?、CMS收集器、G1收集器、垃圾回收算法)
在Java中垃圾回收的目的是回收释放不再被引用的实例对象,这样做可以减少内存泄漏、内存溢出问题的出现。原创 2022-07-29 17:23:27 · 2701 阅读 · 0 评论 -
什么是MVCC?
MVCC(multiple version concurrent control)是一种控制并发的方法,主要用来提高数据库的并发性能。在了解MVCC时应该先了解当前读和快照读。可以看到MVCC的作用就是在不加锁的情况下,解决数据库读写冲突问题,并且解决脏读、幻读、不可重复读等问题,但是不能解决丢失修改问题。...原创 2022-06-29 21:28:34 · 1062 阅读 · 2 评论 -
HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现
JDK1.8的Hash函数 JDK1.8的函数经过了一次异或一次位运算一共两次扰动,而JDK1.7经过了四次位运算五次异或一共九次扰动。这里简单解释下JDK1.8的hash函数,面试经常问这个,两次扰动分别是key.hashCode() 与 key.hashCode() 右移16位进行异或。这样做的目的是,高16位不变,低16位与高16位进行异或操作,进而减少碰撞的发生,高低Bit都参与到Hash的计算。如何不进行扰动处理,因为hash值有32位,直接对数组的长度求余,起作用只是hash值的几个低.原创 2022-06-29 21:09:21 · 438 阅读 · 0 评论 -
hashCode 与 equals(为什么重写equals方法后, hashCode方法也必须重写)
先看下String类中重写的equals方法从源码中可以看到:hashCode 方法返回对象的散列码,返回值是 int 类型的散列码。散列码的作用是确定该对象在哈希表中的索引位置。关于 hashCode 有一些约定:为什么重写 equals 方法后, hashCode 方法也必须重写......原创 2022-06-27 12:12:45 · 1286 阅读 · 0 评论 -
布隆过滤器
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。布隆过滤器优点: 相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数。另外, Hash函数相互之间没有关系,方便由硬件并行实现。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。原创 2022-05-30 08:53:32 · 424 阅读 · 4 评论