数据结构
文章平均质量分 85
0xZzzz
目前就职于阿里,从事阿里新零售业务的相关开发工作,开源爱好者,喜欢阅读优秀开源框架的源码,热衷于研究各种技术,致力于成为一名有腔调的工程师
展开
-
Java8 HashMap源码解读
我们先来阅读一下 HashMap 的注释来相关介绍:Map 接口的基于哈希表的实现。此实现提供所有可选的映射操作,并允许 null 值和 null 键。(HashMap 类与 Hashtable 致等效,不同之处在于它不同步并允许为null。)类不能保证映射的顺序。特别是,它不能保证顺序会随着时间的推移保持恒定。 该实现为基本操作(get 和 put)提供了恒定时间的性能,假设哈希函数将元素正确地分散在存储桶中。集合视图上的迭代所需的时间与 HashMap 实例的“容量”(存储桶数)及其大原创 2020-12-25 18:00:48 · 409 阅读 · 1 评论 -
ArrayBlockingQueue源码解析
正文ArrayBlockingQueue,命名上就能看出其含义,基于数组的FIFO阻塞队列,由Doug Lea大神开发,在jdk1.5版本跟我们见面,关于阻塞队列的应用这里不多赘述,相信大家都有所了解,我们直接来看源码实现。首先我们来看内部的成员变量: ArrayBlockingQueue:final Object[] items; //用于存储队列内部的元素int takeIndex原创 2018-03-08 21:37:44 · 961 阅读 · 4 评论 -
最容易理解的一致性哈希算法解析
哈希简介我们首先来简单介绍一下什么是哈希(以下简称hash),hash本质来说就是映射,或者说是键值对key-value,不同的hash之间不过就是实现key-value映射的算法不同,例如java中计算对象的hashcode值会有不同的算法,常用于各种分布式存储分片的id取摩算法等,都属于hash算法。面临的问题一个算法的出现一定是为了解决某个问题或者是某类问题,理解算法解决了什...原创 2018-08-08 16:01:00 · 939 阅读 · 2 评论