(十) 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了一个新数组,则地址改变

例:

posted @ 2021-01-29 04:48  七弹指的树  阅读(97)  评论(0)    收藏  举报