对于值类型,两者比较的都是内容是否相同。 对于引用类型,Equals比较的是变量的内容是否相同,而= =比较的则是引用地址是否相同 比如自写的类,如果有两个对象内的成员变量值相同,这两个对象进行Equals也会返回false,可以简单理解为他们的内存地址不同,所以在使用哈希表或者字典时需要重写 (图 ...
string作为最常用的类型,在实际项目中会有大量的字符串操作,这样会带来大量的字符串创建,内存分配、回收,进而影响性能。因此CLR对于string进行了特殊的优化,CLR中存在“字符串暂存池”概念。那么CLR 如何做到的呢?在CLR初始化时创建一个内部的哈希表,这个表相当于一个字典表,键就是字符串 ...
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 例如,在通讯录中要存储姓名和电话号码,此时将 ...
分类:
其他好文 时间:
2020-06-14 12:48:23
阅读次数:
74
是什么 leveldb内部实现的缓存 为什么要用 性能高于内嵌哈希表 学到什么 与(&)操作进行模运算 减少cache锁操作,可以分为多组cache 源码分析 LRUHandle 缓存中代表键值对的数据结构 // An entry is a variable length heap-allocate ...
分类:
数据库 时间:
2020-06-14 10:30:28
阅读次数:
63
题目来源于力扣(LeetCode) 一、题目 748. 最短完整词 题目相关标签:哈希表 提示: 牌照(licensePlate)的长度在区域[1, 7]中。 牌照(licensePlate)将会包含数字、空格、或者字母(大写和小写)。 单词列表(words)长度在区间 [10, 1000] 中。 ...
分类:
其他好文 时间:
2020-06-11 22:04:56
阅读次数:
69
Redis 命令、数据类型 Redis 命令用于在 Redis 服务上执行操作。要在 Redis 服务上执行命令需要一个 Redis 客户端。Redis 客户端在我们之前下载的的 Redis 的安装包中。 Redis 主要支持五种数据类型:string(字符串),hash(哈希),list(列表), ...
分类:
其他好文 时间:
2020-06-10 20:52:46
阅读次数:
60
HashMap源码分析和面试准备写在前面预备知识hash(哈希)是什么数组链表哈希表二叉树红黑树源码分析jdk1.7实现jdk1.8实现面试常见题目 写在前面本篇涉及到的知识面比较广,无论你是小白还是有经验人士,都可快速理解hashmap,目的是理解知识并能通过面试,一些过于深入和细节的东西不在这里... ...
分类:
其他好文 时间:
2020-06-09 20:57:31
阅读次数:
54
HashMap源码分析和面试准备写在前面预备知识hash(哈希)是什么数组链表哈希表二叉树红黑树源码分析jdk1.7实现jdk1.8实现面试常见题目 写在前面本篇涉及到的知识面比较广,无论你是小白还是有经验人士,都可快速理解hashmap,目的是理解知识并能通过面试,一些过于深入和细节的东西不在这里... ...
分类:
其他好文 时间:
2020-06-09 20:40:01
阅读次数:
54
1概念1.1模型1.2副本1.3衡量分布式系统的指标2分布式系统原理2.1数据分布方式2.2基本副本协议2.3Lease机制2.4Quorum机制2.5日志技术2.6两阶段提交协议2.7MVCC2.8Paxos协议2.9CAP1概念1.1模型节点在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,
分类:
其他好文 时间:
2020-06-08 09:17:42
阅读次数:
59
哈希表+双指针 思路 先排序,后遍历 题目要求找出最长连续序列的长度,注意是找出,所以数组中的元素有可能是重复的。 如何排除重复值,很容易就想到Set集合,所以转成Set集合 后续的遍历用到双指针,为了便于操作又把Set集合转数组,再排序。 因为用到Arrays.sort(),其时间复杂度 为O(n ...
分类:
其他好文 时间:
2020-06-06 21:24:58
阅读次数:
56