笔记
我学java养你
这个作者很懒,什么都没留下…
展开
-
为什么选择b+树
b树中的每个结点存储了键值(key)以及非键值数据(data),b+树的非叶子结点只存储key,叶子结点存储key和data,当data数据量很大时,会导致b树的每个结点能够存储的key变少,因而树的高度增加,io次数增加,查询变慢。此外,在涉及范围查询的时候,b+树相较于b树而言,在叶子结点中间添加了双向指针,只需查询边界key,通过指针顺序(逆序)遍历叶子层即可,查询速度较快;而b树则需要进行树的遍历,相对耗时。...原创 2021-06-10 11:20:36 · 265 阅读 · 0 评论 -
关于重写equals和hashcode的一些理解
个人觉得主要是作用于哈希结构,如hashmap等。将一个键值对对象存入hashmap中,首先对键值进行hashcode,通过返回的整数定位到存储键的桶,由于hash冲突的存在,可能导致不同的键hashcode是一样的,因此需要对该桶上的链表进行equals遍历判断。如果重写equals而没有重写hashcode,可能因为两个相同对象(指两个对象的属性值都相同)的hashcode不同,导致其没有进入同一个桶,被判定为两个不同对象(尽管它们的equals是相等的)。请评论区大神多多指教!!!...原创 2021-06-10 09:26:10 · 73 阅读 · 0 评论