前言 系列文章目录 前面我们讨论了HashMap的结构, 接下来几篇我们从源码角度来看HashMap的实现细节. 本篇我们就来聊聊HashMap的hash算法 本文的源码基于 jdk8 版本. hash算法 上一篇文章我…
分类:HashMap源码分析
深入理解HashMap(四): 关键源码逐行分析之resize扩容
前言 系列文章目录 上一篇我们说明了HashMap的构造函数, 谈到构造函数中并不会初始化table 变量, table 变量是在 resize过程中初始化的. 本篇我们就来聊聊HashMap的扩容: resize 本文…
深入理解HashMap(三): 关键源码逐行分析之构造函数
前言 系列文章目录 上一篇我们说明了HashMap的hash算法, 说到HashMap在构造时会自动将table设为2的整数次幂. 本篇我们就来聊聊HashMap的构造函数. 本文的源码基于 jdk8 版本. 构造函数 …
JDK 源码分析之HashMap之一
本源码研究是基于JDK1.8的,JDK版本不同,会有略微的差别。1 什么是HashMap HashMap是一种以key-value形式存储数据,数据存储结构以数组与链表为结构存储数据的,其中以hash算法得到数据的存储位…
hashmap源码分析
HashMap源码解析 hashmap的数结构 (1)在Java中,数据结构分为两种,一种是数组,另一个是模型指针即引用,所有的数据结构都可以用这两种基本结构所构造,HashMap就是一个数组和链表的结合体,即通过has…
hashmap源码分析( 基于java8)
hashmap源码分析 简介 hashmap的get和put操作的时间复杂度是常量。通过调用哈希函数将元素正确的分布到桶中。初始容量(capacity)的值不能设置太高,加载因子(loadfactor)不能设置的太低,否…
源码|jdk源码之HashMap分析(一)
hash表是应用最广泛的数据结构,是对键值对数据结构的一种重要实现。 它能够将关键字key映射到内存中的某一位置,查询和插入都能达到平均时间复杂度为O(1)的性能。 HashMap是java对hash表的实现,它是非线程…
Swoole 源码分析——基础模块之HashMap
HashMap 的数据结构 HashMap 的数据结构很简单,就是一个根节点、一个迭代器还有一个析构函数 HashMap 比较复杂的地方在于其节点 swHashMap_node 的 UT_hash_handle 数据成员…
如何在JavaScript中实现一个Long型——Long.js源码学习与分析
背景 由于在项目中使用到了WebSocket的自定义二进制协议,需要将二进制转为后端服务中定义的Long型。而在JavaScript中的Number类型由于自身原因,并不能完全表示Long型的数字,因此需要我们通过其他的…
JStorm源码分析系列--01--Nimbus启动分析
写在前面的话,笔者第一次阅读框架源码,所以可能有些地方理解错误或者没有详细解释,如果在阅读过程发现错误很欢迎在文章下面评论指出。文章后续会陆续更新,可以关注或者收藏,转发请先私信我,谢谢。对了,笔者看的是2.2.1这个版…
Java LinkedList源码分析
简介 LinkedList是一个常用的集合类,用于顺序存储元素。LinkedList经常和ArrayList一起被提及。大部分人应该都知道ArrayList内部采用数组保存元素,适合用于随机访问比较多的场景,而随机插入、…
dubbo负载均衡策略及对应源码分析
在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。我们还可以扩展自己的负责均衡策略,前提是你已经从一个小白变成了大牛,嘻嘻 1、Random LoadBalance 1.1 随机,按权重设…