数组的定义格式
动态初始化
1
2
3
4
5//数据类型 [] 数组名 = new 数据类型[数组长度];
int [] array = new int[300];
/*或者
int [] array;
array = new int[300];*/
静态初始化
1
2
3
4
5//数据类型 [] 数组名 = new 数据类型[]{元素1,元素2,...};
int [] arrayA = new int[]{1,2,3};
/*或者
int [] arrayA;
arrayA = new int[]{1,2,3};*/省略格式的初始化
1
2
3
4
5//数据类型 [] 数组名 = {元素1,元素2,...};
int [] arrayB = {1,2,3};
//下面这种写法是错误的
/*int []arrayB;
arrayB = {1,2,3};*/
数组默认值
动态初始化数组,其中每个元素的默认值如下
数据类型 默认值 整数类型 0 浮点类型 0.0 字符类型 ‘\u000’(不可见字符) 布尔类型 false 引用类型 null
数组内存分布
- 在方法内定义的数组,在栈区存放该数组的首地址,在堆区存放该数组元素的内容。
- 例如查找array[1]的内容,先在栈区查找到该数组的首地址,然后再堆区按照序号获取元素值
- 若将数组重新进行new,那么再栈区存放的首地址将发生变化
数组初始化空指针异常
- 所有的引用类型量,都可以赋值为一个null值,数组是引用类型
- 数组必须进行new初始化,才能使用其中的元素
- 如果只是给数组赋初值为null,那么访问时会发生空指针异常(NullPointerException)
数组作为方法参数
- 数组作为方法参数,传递的是数组的地址值
1 | public class Hello { |
数组输出
- Java封装了Arrays
1 | int[] arrayA = new int[]{1, 2, 3}; |