(十) java数组
1. 概念:一种容器,可以同时存放多个数据值。
2. 特点:
* 数组是一种引用数据类型
* 数组中的所有数据,类型必须统一。比如都是int类型
* 数组的长度在程序运行期间不可改变。
3. 三种定义格式:
* 动态初始化 (指定长度)
数据类型[ ] 数组名称 = new 数据类型 [数组长度];
* 静态初始化 (不指定长度,指定内容)
数据类型[ ] 数组名称 = new 数据类型 [ ] {元素1,元素2, ...};
* 省略的静态初始化
数据类型[ ] 数组名称 = {元素1,元素2,...};
例子:
int[] ArrayA = new int[8];//动态初始化
double[] ArrayB = new double[]{3.2, 4.5, 8.3};//静态初始化
int[] ArrayC = {12, 22, 34, 6};//省略的静态初始化
注意:
* 等号左侧和右侧的数据类型必须保持一致;
* 不确定数组当中的具体内容,用动态初始化;否则用静态初始化;
* 使用动态初始化,其中的元素将自动拥有一个默认值:
- 整数类型默认为0;
- 浮点类型默认为0.0;
- 字符类型默认为'\u0000';
- 布尔类型默认为false;
此时直接打印数组名称,将得到数组在堆内存中的地址值:
例:
int[] ArrayA = new int[8];
System.out.println(ArrayA);//[I@5a39699c
System.out.println(ArrayA[1]);//0
System.out.println(ArrayA[2]); //0
4. 当一个数组等于另一个数组,相当于两个数组使用同一个地址。当其中一个数组内数据发生改变,另一个也随之变化。
例:数组内存图:

根据上图可知:
int[] arrayB = arrayA;
上面等式表示: 数组arrayB不仅仅与arrayA的数值相等,且与arrayA共享同一个地址!因此当B内的数据发生改变,A也会改变。
根据上图:
arrayB[1] = 100;
arrayB[2] = 200;
可得:
System.out.println(arrayA[1]); //100
System.out.println(arrayA[2]); //200
注意:当同一个数组new了一个新数组,则地址改变
例:


浙公网安备 33010602011771号