Java基础
文章平均质量分 92
Java基础
Naker_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JDK1.8 HashMap扩容
说在前边 JDK1.8中的HashMap较于前代有了较大的变更,主要变化在于扩容机制的改变。在JDK1.7及之前HashMap在扩容进行数组拷贝的时候采用的是头插法,因此会造成并发情景下形成环状链表造成死循环的问题。JDK1.8中改用了尾插法进行数组拷贝,修复了这个问题。同时JDK1.8开始HashMap改用数组+链表/红黑树组合的数据结构来提高查询效率,降低哈希冲突产生的链表过长导致的查询效率减缓现象。 本文的主要内容是对JDK1.8中的扩容机制与前代进行比较,分析其异同。 准备 数组大小的计算 在JDK原创 2021-03-28 18:34:05 · 1998 阅读 · 0 评论 -
JDK1.6中的HashMap扩容
JDK1.6中的HashMap扩容 说在前边 JDK1.8之前的HashMap采用数组加链表的方式存储数据。因为手头暂时找不到JDK1.7的源码包,而在1.8之前1.6和1.7的HashMap源码并没有太大的不同,就用1.6代替吧。 扩容简介 HashMap是会在放入新元素后根据元素的总个数与当前数组长度之间的关系动态调整数组长度进行扩容操作的(仿佛是在放屁一样的废话)。这个元素个数与数组长度的关系在代码里被定义为threshold,它由数组的长度与负载因子loadFactor相乘得出(也可手动设置)。数组原创 2021-03-28 01:42:03 · 418 阅读 · 0 评论
分享