美文网首页
HashMap深度分析

HashMap深度分析

作者: Ben_197e | 来源:发表于2020-09-21 17:31 被阅读0次

本文将针对HashMap一下几方面进行深度分析,希望对读者能够有所帮助:

1)HashMap为什么是线程不安全的?

2)HashMap和HashTable的区别

3)1.7和1.8的HashMap实现区别总结

HashMap

1. 允许使用null健和null值,null存储在第一个位置;hashMap的key不能重复;无序;非线程安全;初始容量16,扩容*2;

2. HashTable:不允许null;线程安全;相比HashMap速度慢;适用多线程;初始容量11;

3. 存储结构:

java 1.7: 数组+单链表;头插法(逆序且环形链表死循环问题);

java1.8:数组+单链表+红黑树(当链表节点>8,转成红黑树);尾插法;

4. 线程不安全:

      1. put数据导致多线程数据不一致,两个数据计算得到一样的hash坐标,两个线程同时插入会出现数据不一致。

       2. 扩容会产生死循环,两个线程同时修改一个链表结构,导致产生循环链表。

相关文章

  • HashMap

    参考 HashMap深度分析 HashMap的实现

  • HashMap,ArrayMap,SparyArray原理解析

    HashMap原理分析深度解读ArrayMap优势与缺陷

  • JDK1.7 HashMap

    通俗易懂的解释 ↓漫画:什么是HashMap?漫画:高并发下的HashMap详细的解释 ↓HashMap深度分析...

  • HashMap深度分析

    HashMap深度分析 HashMap是Map的一个实现类,它代表的是一种键值对的数据存储形式。 大多数情况下可以...

  • HashMap深度分析

    这次主要是分析下HashMap的工作原理,为什么我会拿这个东西出来分析,原因很简单,以前我面试的时候,偶尔问起Ha...

  • HashMap深度分析

    本文将针对HashMap一下几方面进行深度分析,希望对读者能够有所帮助: 1)HashMap为什么是线程不安全的?...

  • HashMap深度分析疑问

    hashMap底层是基于散列算法实现,散列算法分为散列再探测和拉链式。hashmap使用了拉链式散列算法,在jdk...

  • Java HashMap源码深度分析

    ​在java语言中,HashMap是一个非常重要的数据结构,它被广泛用于存储具有key-value映射关系的数据,...

  • HashMap 的构造函数分析

    HashMap 系列文章 HashMap 的自定义常量分析 HashMap 的构造函数分析 HashMap 的 h...

  • HashMap 的自定义常量分析

    HashMap 系列文章 HashMap 的自定义常量分析 HashMap 的构造函数分析 HashMap 的 h...

网友评论

      本文标题:HashMap深度分析

      本文链接:https://www.haomeiwen.com/subject/srzvyktx.html