上周跟一个做后端的老兄弟吃饭,他吐槽说前几天面试栽大了——面试官盯着 HashMap 不放,问“Hash冲突到底怎么解决?除了链表还有别的方式吗?JDK 1.8 里处理冲突的逻辑跟之前比有啥不一样?”他当时脑子一蒙,只记得链表俩字,后面的红黑树转换、哈希函数 ...
在 Visual Basic(VB)中,哈希表(Hash Table)通常使用 Dictionary 类来实现。Dictionary 类提供了一种高效的方式来存储和检索键值对,类似于其他编程语言中的哈希或映射。以下是如何在 VB 中使用 Dictionary 类的详细说明和示例。 使用 Dictionary 类 在 VB 中,Dictionary 类 ...
哈希表(hash table)是计算机科学中最基础也最重要的数据结构之一,它的历史可以追溯到 20 世纪 50 年代早期。哈希表的核心思想是通过一个哈希函数,将任意范围的键值映射到一个固定大小的数组空间中。 图丨一个作为哈希表的小型电话簿(来源:WikiPedia ...
随着数据量爆炸性的增长,数据库类产品创新层出不穷,为了更好的做技术选型参考,笔者对国内主流 8 种数据库进行了 TPC-H(数据分析)性能评测,被测试的数据库包括:MySQL、PostgreSQL、Oracle、达梦、ClickHouse、Doris、Starrocks、DuckDB。 测试方法 TPC-H:国际数据库 ...
1 条数据理论上应该占用 16 字节,即 8 字节 userId + 8 字节 userData。但是实际上内存占用比这个更大。 为了实现从键到值的快速访问,Redis 使用了一个全局哈希表来保存所有键值对。其中 Key 用 SDS 格式存储,Value 则用 RedisObject 存储,RedisObject 再指向具体的底层 ...
有时候看一些源码的时候,经常出现System.identityHashCode(obj) 的使用,这里仔细去讨论一下这个方法与平常的obj.hashCode()方法的关系。 首先去回顾一下hashcode的概念 hashcode是jdk根据对象的地址算出来的一个int数字,即对象的哈希码值,代表了该对象在哈希表中的存储 ...
好久没有写一些微观方面的文章了,今天写一篇关于CPU Cache相关的文章,这篇文章比较长,主要分成这么几个部分:基础知识、缓存的命中、缓存的一致性、相关的代码示例和延伸阅读。其中会讲述一些多核 CPU 的系统架构以及其原理,包括对程序性能上的影响 ...
在微软Build 2018开发者大会上,微软公司全球开发平台事业部的资深副总裁潘正磊(Julia Liuson)接受了界面记者在内的采访。 潘正磊在微软西雅图总部带领一千多人组成的团队,微软的开发工具,包括Visual Studio,Visual Studio for Mac、VS Code、.Net,都由她领导其团队 ...
如果想在一个n个元素的列表中,查询元素x是否存在于列表中,首先想到的就是从头到尾遍历一遍列表,逐个进行比较,这种方法效率是Θ(n);当然,如果列表是已经排好序的话,可以采用二分查找算法进行查找,这时效率提升到Θ(logn); 本文中,我们介绍散 ...
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在 ...