java数组变量与普通变量的区别

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值