Java实习生准备
_枸杞子_
软件工程专业学生
展开
-
HashMap底层详解-001-数据结构、put、get
今天小粉粉去某公司参加Java开发工程师的面试了。但是不太顺利,然后她遇见了小灰灰……HashMap的数据结构 HashMap的数据结构是 数组+链表 的形式组成的。数组(这个table就是咱们看见的数组部分。) /** * The table, initialized on first use, and resized as * necessary. When a原创 2017-11-16 09:00:32 · 340 阅读 · 0 评论 -
HashMap底层详解-002-hash算法、长度的秘密
第二天,小粉粉和小灰灰又遇见了…… 之前咱们说过,有一个hash方法,用于计算元素的下标值。index = hash(key)在hash方法内部,我们通过key的hashCode值与HashMap的长度做某种运算,可以得到最后的index值。index = key.hashCode() % hashMap.length1.对hash值进行调整/** * 如果Key值为null原创 2017-11-16 09:01:01 · 442 阅读 · 0 评论 -
HashMap底层详解-003-resize、并发下的安全问题
HashMap扩容的时机是: 当前HashMap中存放的元素个数 > HashMap的当前总长度 * loadFactor(loadFactor默认值是0.75) 时进行扩容,扩容之后的长度是当前长度的2倍(比如现在存放了 16 * 0.75 = 12个,再存放第十三个元素的时候,HashMap就会自动的扩容,扩展成 2 * 16 = 32个 )。 /** * The load原创 2017-11-16 09:01:34 · 305 阅读 · 0 评论