数组的定义
- 数组就是用来存储一批同种类型数据的内存区域(可以理解为容器)
静态初始化数组
定义数组的时候直接给数组赋值
// 完整格式
数据类型[] 数组名 = new 数组类型[]{元素1, 元素2, 元素3...};
// 简化格式
数据类型[] 数组名 = {元素1, 元素2, 元素3...};
int[] ages = {12, 24, 36};
- 数组变量名中存储的是数组在内存中的地址,数组是引用类型
数组的访问
// 数组名称[索引]
System.out.println(arr[0]); // 取值
arr[1] = 100; // 赋值
System.out.println(arr[1]);
System.out.println(arr.length); // 获取长度
注意事项
也可以写成”数组类型 数组名[]“,但习惯于前面的定义格式
什么类型的数组存放什么类型的数据,否则报错
数组一旦定义出来,程序执行过程中,长度和类型就固定了
动态初始化数组
- 定义数组的时候只确定元素的类型和数组的长度,之后再存入具体数据
// 格式
数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[3];
动态初始化元素默认值

数组的遍历
- 一个一个的把数据访问一遍
int[] ages = {20, 30, 40, 50, 12};
// 快捷方式:ages.fori + enter
for(int i =0; i < ages.length; i++){
System.out.println(ages[i]);
}
Java内存分配介绍
- 方法区:字节码文件加载时进入的内存
- 栈:方法运行时所进入的内存,变量也是在这里
- 堆:new 出来的东西会在这块内存中开辟空间并产生地址

把一个数组赋值给另一个数组(地址),则这两个数组变量指向同一个数组对象,改变其中一个数组里面的值,另一个数组也会随着改变。