java数组变量与普通变量的区别
看下面一段代码
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
int a[]=new int[2];
int b[] = a;//管理权限的赋予
System.out.println(a[0]);
b[0] = 22;//改变了数组a的对应的数字
System.out.println(b[0]);
System.out.println(a[0]);
System.out.println(a == b);
//数组变量之间的比较是判断是否管理同一个数组
int x = 1;
int y = x;
System.out.println(x);
y = 3;//对整型x的值没有影响
System.out.println(x);
System.out.println(y);
int i [] = {1,2,3};
int j [] = {1,2,3};
System.out.println(i == j);
//i,j 管理同一个数组
}
}
结果
0
22
22
true
1
1
3
false
Process finished with exit code 0
我是这样子理解的
可以把数组变量a理解为一串数字的管理者,他是管理数组内的数字的,把a 赋给b 的时候,就可以理解为a把管理权分享给了b,此时a,b,同时享有管理权,管理的是同一串数字,所以当通过b改变数组但是,本质上数组也就发生了改变。
同时,数组变量之间的比较是判断是否管理同一个数组,不是数组中的元素是否相等。比较连个数组中的元素是否相等时必须采用遍历
同样,把普通变量可以理解为数字的所有者当把y 赋给x的时候,只是把值传给了y,并没有把管理权给y