Hashmap的结构,1.7和1.8有哪些区别
jdk8:先put再扩容:
先扩容再put就是不管当前插入的值所属的桶是不是空,都先扩容,会造成无效扩容;先put在扩容,会在put时发现是否当前桶为空,即是否发生hash冲突,如果发生了就扩容,不发生就等下一次插入冲突或大于阀值时扩容
先扩容再put就是不管当前插入的值所属的桶是不是空,都先扩容,会造成无效扩容;先put在扩容,会在put时发现是否当前桶为空,即是否发生hash冲突,如果发生了就扩容,不发生就等下一次插入冲突或大于阀值时扩容