网站索引量暴增,html的常用标签,聊城网站建设策划建设公司,wordpress返回插件一、概述 二、HashMap 1、数据结构 2、应用 3、不要用 HashMap 做本地缓存 一般我们声明 HashMap 时#xff0c;使用的都是默认的构造方法#xff1a;HashMapK, V#xff0c;但是它还有另外一个构造方法#xff1a;HashMap(int initialCapacity, float loadFactor)… 一、概述 二、HashMap 1、数据结构 2、应用 3、不要用 HashMap 做本地缓存 一般我们声明 HashMap 时使用的都是默认的构造方法HashMapK, V但是它还有另外一个构造方法HashMap(int initialCapacity, float loadFactor)其中参数 initialCapaticy 为初始容量loadFactor 为加载因子如果在默认情况下一个 HashMap 的容量为 16加载因子为 0.75那么阈值就是 12所以在往 HashMap 中 put 的值到达 12 时它将自动扩容两倍如果两个线程同时遇到 HashMap 的大小达到 12 的倍数时就很可能会出现在将旧的 Entry[] 转移到一个新的 Entry[] 的过程中出现问题从而导致最终的 HashMap 的值存储异常。 再分析一下空间效率拿 HashMapLong, Long 举例。在 HashMapLong, Long 结构中只有 Key 和 Value 所存放的两个长整型数据是有效数据共 16B (2 X 8B)。这两个长整型数据包装成 java.lang.Long 对象之后就分别具有 8B 的 MarkWord、8B 的 Klass 指针在加 8B 存储数据的 long 值。在这两个 Long 对象组成 Map.Entry 之后又多了 16B 的对象头然后一个 8B 的 next 字段和 4B 的 int 型的 hash 字段为了对齐还必须添加 4B 的空白填充最后还有 HashMap 中对这个 Entry 的 8B 的引用这样增加两个长整型数字实际耗费的内存为 (Long(24B)X2) Entry(32B) HashMap Ref(8B) 88B空间效率为 16B/88B 18%实在太低了。 三、ConcurrentHashMap 1、数据结构 2、应用 转载于:https://www.cnblogs.com/JavaSubin/p/7751911.html