数组的概念
是一种容器,可以同时存放多个数据值。
数组的特点
- 数组是一种引用数据类型。
- 数组当中的多个数据,类型必须统一。
- 数组的长度在程序运行期间不可改变。
数组的初始化
在内存中创建一个数组,并且向其中赋予一些默认值。
两种常见的初始化
- 动态初始化(指定长度)
在创建数组的时候,直接指定数组当中的数据元素个数。 - 静态初始化(制定内容)
在创建数组的时候,不直接指定数据个数的多少,而是直接将具体的数据内容进行指定。
动态初始化的格式
数据类型 [ ] 数组名称 = new 数据类型[数组长度];
解析含义
左侧数据类型
也就是数组当中保存的数据,全部都是统一的什么类型。
左侧的中括号
代表我是一个数组。
左侧数组名称
给数组取一个名字。
右侧的new
代表创建数组的动作。
右侧数据类型
必须和左侧的数据类型一致。
右侧中括号的长度
也就是数组当中,到底可以保存多少个数据,是一个int数字。
public class Demo01Array {
public static void main(String[] args) {
//创建一个数组,里面可以存放300个int数据
//格式:数据类型[] 数组名称=new 数据类型[数组长度];
int[] arrayA = new int[300];
//创建一个数组,里面可以存放10个double数据
double[] arrayB = new double[10];
//创建一个数组,里面可以存放5个字符串
String[] arrayC = new String[5];
}
}
静态初始化的基本格式
数据类型 [ ] 数组名称 = new 数据类型 [ ] ={元数1,元素2,…};
注意事项
虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素具体内容,也可以自动推算出来长度。
public class Demo02Array {
public static void main(String[] args) {
//直接创建一个数组,里面装的全部都是int数字,具体为:5,15,25
int[] arrayA = new int[]{5,15,25};
//创建一个数组,用来装字符串,具体为:5,15,25
String[] arrayB = new String[]{"Hello","Word","Java"};
}
}
静态初始化的省略格式
使用静态初始化的时候,格式还可以省略一下
数据类型 [ ] 数据名称 = {元素1,元素2,…};
public class Demo03Array {
public static void main(String[] args) {
//省略格式的静态初始化
int [] arrayA = {10,20,30};
//静态初始化的标准格式,可以拆分为两个步骤
int [] arrayB;
arrayB = new int[]{11,21,31};
//动态初始化也可以拆分为两个步骤
int[] arrayC;
arrayC = new int[5];
}
}
注意事项
- 静态初始化没有直接指定长度,但是仍然会自动推算得到长度。
- 静态初始化标准格式可以拆分为两个步骤。
- 动态初始化也可以拆分为两个步骤。
- 静态初始化一旦使用省略格式,就不能拆分成为两个步骤了。
使用建议
如果不确定数组当中的具体内容,用动态初始化;否则已经确定了具体内容,用静态初始化。
使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。
如果是整数类型,那么默认值为0;
如果是浮点数类型,那么默认值为0.0;
如果是字符类型,那么默认值为’\u0000’;
如果是布尔类型,那么默认值为false;
如果是引用类型,那么默认值为null。
注意事项
静态初始化其实也有默认值的过程,只不过系统自动马上将默认值替换成为了大括号当中的具体数值。
/**
* 遍历数组,说的是对数组当中的每一个元素进行逐一、挨个儿处理。
* 默认的处理方式就是打印输出。
*/
public class Demo04Array {
public static void main(String[] args) {
int[] array = {15, 25, 30, 40, 50,60};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
数组可以作为方法的参数
当调用方法的时候,向方法的小括号进行传参,传递的 其实是数组的地址值。