可以保存多个相同数据类型数据的容器就是数组
数组的数据类型:
例如: int[], double[], String[]……
大白话:就是数据类型后面加中括号
数组的初始化初始化就是我们手动的创建出一个可以真正保存多个数据的容器(此时我们并没有往数组容器中存值和取值)
动态初始化
创建数组容器的时候,仅指定数组容器的长度,不指定内容,由系统自动分配默认的值
默认的值: 整数默认0,小数默认0.0,字符默认码值为0的空字符,布尔默认是false,所有引用数据类型都是默认null
代码格式:
数据类型[] 数组名 = new 数据类型[数组的长度];
名词解释:
-
数组名: 以理解就是一个变量名,是我们自己创建数组容器的时候,起的名字,符合标识符规范即可
-
地址值: 就是创建数组容器的时候,java给这个容器分配的内存地址,工程师一般不需要操作;如果直接打印数组名,就可以看到这个地址值,但是一般不看这个地址值(char类型的数组打印名字的时候,可以直接看到内容,而不是地址值)
-
索引/下标/角标: 是java规定的专门用于操作数组容器中的内容而设定的整数,范围一定是 [0,数组的长度减1为止]
-
元素值: 数组容器中存储的数据(这个是我们真正想操作的东西)
-
数组的长度: 你想要存放几个单位的值(可以设置为变量)
存取数组元素的代码格式:
存: 数组名[下标] = 值;
取: 数组名[下标];
注意: 数组元素取出之后,需要有使用的行为
用: 例 System.out.println(数组名[下标]);
静态初始化
创建数组容器的时候,直接指定数组中的每个元素的值,就不再需要并且也不能指定数组的长度(因为java会自动计算出数组的长度)
代码格式:
标准格式: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
简写格式: 数据类型[] 数组名 = {元素1,元素2,...};
数组初始化的内存示意图
注意事项:
-
数组容器一旦创建成功,长度不能被改变
-
静态初始化的简写格式,只能在创建数组容器的时候使用,其他地方不能使用
例如:
double[] arr = {1.1,2.2}; // 这是正确的
arr2 = {6.6,8.8};// 这一行语法错误,正确的写法是: arr2 = new double[]{6.6,8.8};
- 数组的索引一定是[0 , 数组的长度减1为止]
数组常见的问题:
- 索引越界: 访问了数组中不存在的索引,造成索引越界的问题
- 空指针异常: 访问的数组已经不再指向堆内存的数据,造成空指针异常
- null: 空值,引用数据类型的默认值, 表示不指向任何有效对象
数组遍历: 遍历就是对数组中的元素逐个操作
快捷键:
- 数组名.fori 正向遍历
- 数组名.forr 逆向遍历



