数组的的定义
int[] age;
int age[];
数组必须初始化才能使用,因为需要分配内存空间
数组初始化
静态初始化,给了元素值,但没有定义长度
int[] age =new int[]{1,2,3,4};
int[] age1 ={1,2,3,4};//简单写法
数组初始化步骤
- 声明int类型的数组age: int[] age;
- 初始化数组:new int[]{1,2,3,4};
- 把初始化的数据赋给age变量
- new关键字:在堆内存中开辟一块内存空间,用来存储数据,加入该空间名称为0x1234;
- age引用堆空间中的这块内存空间0x1234;
- 我们表面上操作的是age,其实底层操作的是内存空间0x1234;
动态初始化:
由我们设置数组的元素个数(数组长度),而每一个数组元素的初始值由系统决定
类型 | 初始值 |
byte、short、int | 0 |
long | 0L |
float | 0.0F |
double | 0.0D |
boolean | false |
char | ' \u0000'(表示空) |
引用数据类型 | null |
int[] num = new int[4];
num = new int[3];
int[] nums = new int[4]{1,2,3,4};//错误,不能定义长度,又定义元素
数组定义过程
当堆内存中的对象没有被引用的时候就会变成垃圾,等着垃圾回收器回收
数组的基本操作
获取元素:元素类型 变量 = 数组名[index],int a = num[1]
设置元素:数组名[index] = 2,num[1] = 2
遍历数组元素:用for循环遍历,事先知道循环的次数
int[] age =new int[]{1,2,3,4};
for (int i = 0; i < age.length; i++) {
System.out.println(age[i]);
}
数组长度:int len = 数组名.length,int len= num.length,length是属性,不是方法
索引范围:从0开始,逐一递增,[0,数组名.length-1]
增强for循环
从java1.5开始有了语法糖增强for循环,只关心数组元素的值,而不关心数组的索引
int[] age =new int[]{1,2,3,4};
for (int num : age) {
System.out.println(num);
}
增强for循环,地层其实还是用的for循环