数组:本质是能让我们“批量”创建相同类型的变量
下面通过代码示例来更了解数组的相关定义与使用
(1)获取数组长度
(2)访问元素
(3)了解下标越界
(4)遍历数组
方法一
方法二 for-each(可以避免循环条件和更新语句写错)
(5)打印数组内容
(6)参数传数组类型
注:在函数内部修改数组内容,函数外部也发生改变。数组名array是一个“引用”,当传参的时候,是按照引用传参的
什么是引用?
首先要知道什么是变量,变量就是一小块内存单元,这一小块内存里存储着变量的值,如int a = 1;
这里的a就是变量的名,1就是变量的值。当变量指向一个对象时,这个变量就被称为引用变量
如A a =new A(); a就是引用变量,它指向了一个A对象,也可以说它引用了一个A对象。我们通过操纵这个a来操作A对象。 此时,变量a的值为它所引用对象的地址。
下面我们以int[] arr = new int[] {1,2,3}为例
1)创建new int[] {1,2,3}时,相当于创建一块内存空间保存三个int
2)执行int[] arr = new int[] {1,2,3},相当于又创建了一个int[]变量,这个变量是引用类型,里面只保存一个整数(数组的起始内存地址)
int[] arr
3)传参相当于int[] a = arr
int[] a int[] arr new int[] {1,2,3}
4)修改a[0],此时根据0x100这样的地址找到对应内存位置,将值改成100
int[] a int[] arr new int[] {1,2,3}
0x100
5)此时将0x100地址的数据改为100,根据实参arr来获取数组内容arr[0],本质上也获取0x100地址上的数据,也是100
小结:引用的本质只是存一个地址,数组参数传参只是将数组的地址传入到函数形参中,可以避免对整个数组的拷贝。