1、数组定义格式
方法一:
- 数据类型[] 变量名
- 例:int[] arr
- 定义了一个int类型的数组,数组名是arr
方法二:
- 数据类型 变量名[]
- 例:int arr[]
- 定义了一个int类型的变量,变量名是arr数组
推荐使用格式一定义
2、数组初始化之动态初始化
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 变量名 = new 数据类型[数组长度];
例: int[] arr = new int[3];
3、Java中的内存分配
int[] arr = new int[3];
- 栈内存:存储局部变量,定义在方法中的变量,例如arr,使用完毕,立即消失
- 堆内存:存储new出来的内容(实体、对象),数组在初始化时,会为存储空间添加默认值(整数:0,浮点数:0.0,布尔:false,字符:空字符,引用数据类型:null),每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收。
4、数组初始化之静态初始化
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
格式:数据类型[] 变量名 = new 数据类型[] {数据1,数据2,数据3,……};
例:int[] arr = new int[] {1,2,3};
简化格式:数据类型[] 变量名 = {数据1,数据2,数据3,……};
例:int[] arr = {1,2,3};
5、数组操作的常见问题
(1)索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
ArrayIndexOutOfBoundsException
(2)空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
NullPointerException
(3)null:空值,引用数据类型的默认值,表示不指向任何有效对象