1 数组定义格式
一次性声明大量的用于存储数据的变量;要存储的数据通常都是同类型数据。
数组(array)是一种用于存储多个相同类型数据的存储模型。
数组定义格式:
- 格式一:数据类型[] 变量名 如:int[] arr ;定义了一个int类型的数组,数组名是arr
- 格式二:数据类型 变量名[] 如:int arr[] ;定义了一个int类型的变量,变量名是arr数组
2 数组初始化之动态初始化
Java中的数组必须先初始化,然后才能使用
初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
数组初始化方式:
- 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型[] 变量名 = new 数据类型[数组长度] ; 如 int[] arr = new int[3];
- 静态初始化
3 数组元素访问
数组变量访问方式:格式:数组名
数组内部保存的数据的访问方式: 格式: 数组名[索引]
索引是数组中数据的编号方式;数组名[索引]等同于变量名,是一种特殊的变量名。索引从0开始。
4 内存分配
栈内存:存储局部变量;定义在方法中的变量,使用完后便不再存在
堆内存:存储new出来的内容(实体,对象)。数组在初始化时会为存储空间添加默认值。
数组内存图(单个数组)
数组内存图(多个数组)
数组内存图(多个数组指向相同)
5 数组初始化之静态初始化
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式:数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,...}
范例:int[] arr = new int[] {1,2,3};
简化格式:数据类型[] 变量名 = {数据1,数据2,数据3,...};
范例:int [] arr = {1,2,3};
6 数组常见操作
小问题:索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题;(ArrayIndexOutOfBoundsException)
空指针异常:访问的数据已经不再指向堆内存的数据,造成空指针异常;(NullPointerException)
null:空值,引用数据类型的默认值,表示不指向任何有效对象。
遍历数组:利用循环
获取数组元素数量:数组名.length
获取最值: