目录
概念:
同一种数据类型的集合,其实数组就是一个容器
好处:
可以自动给数组中的元素从0开始编号,方便操作这些元素
格式:
//元素类型[] 数组名=new 元素类型[元素个数或数组长度];
int[] arr = new int[5];
//元素类型[] 数组名 =new 元素类型[]{元素,元素,...};
int[] arr = new int[]{3,5,1,7};
int[] arr={3,5,1,7};
内存分析
要分析数组的内存,以下几点需要明确
栈内存:
用于存储局部变量,当数据使用完,所占空间会自动释放
堆内存:
- 数组和对象,通过new建立的实例都存放在堆内存中
- 每一个实体都有内存地址值
- 实体中的变量都有默认初始化值
- 实体不在被使用,会在不确定的时间内被垃圾回收器回收
如图解析
ps:在数据初始化的时候就已经有初始值了
javac编译的时候检查语法错误,数组下标越界是不会报错的,只有执行的时候才会报错
二维数组
格式一:
int[][] arr = new int[3][2];
- 定义了名称为arr的二维数组
- 二维数组中有3个一维数组
- 每一个一维数组中有2个元素
- 一维数组的名称分别为arr[0],arr[1],arr[2]
- 给第一个一维数组1角表位赋值为7写法为:arr[0][1]=78;
格式二:
int[][] arr=new int[3][];
- 二维数组中有3个一维数组
- 每个一维数组都是默认初始化值null
- 可以对这三个一维数组分别进行初始化
- arr[0]=new int[3];
- arr[1]=new int[1];
- arr[2]=new int[2];
内存分析: