数组

数组是java的一种基本数据类型,可以存储一组相同类型的数据

核心要点

若需要对一组相同数据类型的数据进行定义时,不需要对每个数据都定义一个变量或常量。可以使用数组的方式对数据进行定义和存储。

数组的声明

数组的声明方法如下:

  • 基本数据类型[] 变量名称;
  • 基本数据类型 变量名称[]; 不推荐使用此方法

数组的初始化

//不使用数组  
int a  = 1;  
int b  = 2;  
int c  = 3;  
  
//使用数组 动态初始化 
int[] arr = new int[3];  
arr[0] = 1;  
arr[1] = 2;  
arr[2] = 3;
 
//使用数组 静态初始化
int[] dynamicArr = new int[]{1,2,3};

特点:

  1. 数组在进行初始化后,数组的大小不再进行改变;
  2. 数组初始化后会存在默认值,整数的默认值为0,浮点数默认值为0.0,布尔类型默认只为false

数组的访问

数组的访问是通过变量名[下标]的方式进行访问,如一个数组 arr 的大小为3,则数组的下标则是从0开始三个数,分别为:arr[0]、arr[1]、arr[2]

int[] arrDemo = new int[]{1,2,3,4,5};  
//获取数组长度  
System.out.println(arrDemo.length);  
//获取指定坐标的值  
System.out.println(arrDemo[0]);  
//获取数组内所有数据  
for (int i = 0; i < arrDemo.length; i++) {  
    System.out.print(arrDemo[i]+" ");  
}

思考

数组进行重新初始化,长度是否发生改变?

//基本类型数组对象赋值  
int[] intArr = new int[]{1,2,3,4,5};  
System.out.println(intArr.length);//5  
intArr = new int[2];  
System.out.println(intArr.length);//2

上述代码中,对数组 intArr 进行了重新初始化,从代码输出看数组长度发生了改变。实际在内存中修改形式为:

当执行 int[] intArr = new int[]{1,2,3,4,5}; 时,声明 arr 数组,并初始化数组内容到内存空间,将数组 arr 的指针指向变更:

当执行 intArr = new int[2]; 修改 arr 的指向而不是修改原有数据

注意

  1. 数组定义后大小不可修改;
  2. 数组可以通过访问下标的方式获取对应下标数据;
  3. 数组可以是值类型(如int)或引用类型(如String),但数组本身是引用类型。