数组的概念
- 数组的四要素
- 元素的类型【也称为数组的类型,例如int double float 等等】
- 标识符【也叫作数组名】
- 数组的元素【也叫作数组的成员】
- 数组的下标【从0开始,到数组长度减1结束,例如长度为n的数组就是0到n-1】
- 注意
- 数组元素【数组成员】的访问需要通过数组名结合下标去访问
- 数组元素一定是同类型的或者兼容类型的
// 例如:下面的2重是合法的
int [] b={12, 23, 34, 'A'};
double [] a={12.5, 32.4f};
- 数组的定义与使用
- 声明数组
- 注意
- 数组声明的时候不规定长度大小
- 可以直接在声明的时候给他分配空降大小
类型[] 数组名;
类型 数组名[];
类型[] 数组名 = new 数组类型[n];
- 分配空间【就是高度计算机内存准备开辟几个连续的空间】
数组名 = new 类型[数组长度]; 注意:数组的长度也称为元素的个数
- 赋值
数组名[下标] = 值;
数组的赋值移动要通过数组元素一个个赋值,不能直接赋值给数组名
- 使用数组元素
使用数组名加下标访问元素 数组名[下标]
数组元素的默认值
- char 类型———————空字符
- 整型【long/int/short/byte】—0
- String类型——————–null
- boolean类型——————-false
- 浮点型【float/double】——–0.0
数组的赋值方式
// 方式1
int[] a = {1, 2, 3, 4, 5};
// 通过数组组.length获取数组长度
System.out.println(a.length);
// 方式2
int[] b = new int[]{1, 2, 3, 4, 5, 6};
// 通过数组组.length获取数组长度
System.out.println(b.length);
- 注意:方式2的new后面的[] 中不能指定数组长度
- 以上方式一和方式二的赋值必须在一行上面完成【即声明的同时赋值】
// 典型错误
int = c;
c = {1, 2, 3}
// 以下不报错,但是不建议这么用
int = c;
c = new int[]{1, 2, 3}
- 可以使用循环语句结合数组的下标给数组赋值
数组的内存模型
- 栈内存—-存放数组名【实际存放的是指向一块堆内存的地址】
- 堆内存—-通过new 关键字开辟出来的空间区域【实际存放数组元素的集合】
- 注意:
- 当栈中没有任何引用指向这块堆内存区域的时候,JVM虚拟机会多段时间过来回收掉这块堆内存区域
- 当栈内存中的引用不指向任何堆内存的时候,它也会被释放掉
- 数组名就是一个堆内存区域的引用
- 类似一根线牵着一个风筝,如果这根线断了,那么这个风筝就费了,成了垃圾,需要被回收掉。
增强型for循环
- 语法格式
for (类型 element : 集合){
// element 表示取出的集合中的成员
}
注意:一般使用增强型for循环取出数组元素,而不使用它去修改数组元素