Java8 HashMap实现原理探究
某厂面试归来,发现自己落伍了!>>> 前言:Java8之后新增挺多新东西,在网上找了些相关资料,关于HashMap在自己被血虐之后痛定思痛决定整理一下相关知识方便自己看。图和有些内容参考的这个文章:http://www.importnew.com/16599.html HashMap的存储结构如图: 一个桶( bucket )上的节点多于8个则存储结构是红黑树,小于8个是单向链表。 1:HashMap的一些属性 public class HashMap<k,v> extends AbstractMap<k,v> implements Map<k,v>, Cloneable, Serializable { private static final long serialVersionUID = 362498820763181265L; // 默认的初始容量是16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 最大容量 static final int MAXIMUM_CAPACITY = 1 << 30; // 默认的填充因子(以前的版本也有叫加载因子的) static final float DEFAULT_LOAD_FACTOR = 0.75f; // 这是一个阈值,当桶(bucket