为什么堆的空间不连续
由于堆内存的分配和释放是动态的,其空间的分布是不规则的,因此堆的空间是不连续的。 当程序向堆中申请内存时,堆可能会在已分配的内存块之间留下一些未使用的“碎片”,这些碎片可能太小,无法满足程序对更大内存块的申请。 这就是堆内存碎片问题,它可能会导致堆空间的利用效率下降。 总之,堆空间是不连续的,它的分配和释放是动态的,可能会产生内存碎片问题
因此hashMap扩容要重新创建哈希表,采用复制算法,因为Entry类型的hashTable数组必须是连续的(不然直接向后添加可能后面没有连续空间了)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 cloud_fly blog!