当前位置:首页 > 内存 > 正文

java数组内存分配

  • 内存
  • 2024-05-25 23:19:18
  • 2341

一、Java中怎样定义一个长度为20的整数数组int[]arr;//推荐用法
//可以用在方便的地方
arr=newint[20];


二、JAVA里,ArrayList在内存分配上究竟是怎样的?

ArrayList是一个动态数组,也是一个对象。

创建一个ArrayList对象,该对象存储在堆内存中,是一块连续的内存区域。

ist是使用数组实现的。这个数组的内存是连续的,相邻元素之间没有其他内存。

2.对ArrayList进行索引时,速度比原生数组慢,因为需要使用get方法,这是一个函数调用,而使用[]直接访问数组,相当于直接使用内存地址。当然,速度比函数调用快。

3.创建新的ArrayList时,JVM会分配一块默认或指定大小的连续内存区域(封装为数组)。

4.每次添加元素时,都会检查容量,如果不足,就会创建一个新的连续内存区域(大小等于初始大小+步长),并且也会创建该内存区域。封装为数组,并将原内存区域的数据复制到新的内存区域,然后使用ArrayList中引用原封装数组对象的引用变量来引用新的数组对象:

elementData=(elementData,newCapacity);

5.集合内存分配和初始化过程图解