随笔分类 -  java

摘要:Volatile关键字 Volatile是java虚拟机提供的轻量级的同步机制。 1、保证可见性 可见性:举个例子,有三个线程A、B、C,假设A线程想要修改主内存中的一个数据num,因为每个线程都有自己的工作内存,想要修改数据的话,需要将num获得放到自己的工作内存,然后修改完成再返回给主内存。nu 阅读全文
posted @ 2020-07-16 16:47 雷歌儿 阅读(147) 评论(0) 推荐(0)
摘要:HashMap 中重要的构造方法: 1、构造一个空的 HashMap,默认初始容量(16)和默认负载因子(0.75)。 public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // 将默认的加载因子0.75赋值给loadFactor,并没有 阅读全文
posted @ 2020-07-11 16:10 雷歌儿 阅读(240) 评论(0) 推荐(0)
摘要:1、初始化容量 当我们根据key的hash确定其在数组的位置时,如果n为2的幂次方,可以保证数据的均匀插入,如果n不是2的幂次方,可能数组的一些位置永远不会插入数据,浪费数组的空间,加大hash冲突; 一般我们可能会想通过 % 求余来确定位置,只不过性能不如 & 运算。而且当n是2的幂次方时:has 阅读全文
posted @ 2020-07-11 15:26 雷歌儿 阅读(707) 评论(0) 推荐(0)
摘要:数据结构的概念 ​ 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 HashMap的底层数据存储过程 使用代码: public class D 阅读全文
posted @ 2020-07-06 16:27 雷歌儿 阅读(668) 评论(0) 推荐(0)
摘要:理论概念 HashMap基于哈希丟的Map接口实现,是以key-value存锗形式存在。它是线程不安全的,key值和value值允许为null。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的,哈希冲突是由于两个对象调 阅读全文
posted @ 2020-07-06 15:42 雷歌儿 阅读(190) 评论(0) 推荐(0)