ArrayList是一个动态数组和对象。
创建一个ArrayList对象,它是一个连续的内存区域,存储在堆内存中。
ist是使用数组实现的。该数组的内存是连续的,相邻元素之间没有其他内存。
2.对ArrayList进行索引时,必须使用get方法,该方法是一个函数调用,并且比原生数组慢,因为直接使用[]访问数组。当然,这和直接操作内存地址是一样的。它比函数调用更快。
3.创建新的ArrayList时,JVM会分配默认或指定大小(由数组封装)的连续内存区域。
4.每次添加元素时,都会创建一个新的连续内存区域,检查容量是否不足(初始大小+步长)。封装为数组类型,将原来的内存区域数据复制到新的内存区域,然后使用ArrayList中引用原来封装的数组对象的引用变量来引用新的数组对象。
elementData=(elementData,newCapacity);
5.集合内存分配和初始化过程示例
上一篇:动态分配数组内存
下一篇:动态内存分配三种方式