Java原始数据类型的数组

| 为什么下一个代码像使用引用类型而不是原始类型一样工作?
int[] a = new int[5];
int[] b = a;
a[0] = 1;
b[0] = 2;
a[1] = 1;
b[1] = 3;
System.out.println(a[0]);
System.out.println(b[0]);
System.out.println(a[1]);
System.out.println(b[1]);
输出为: 2 2 3 3 而不是 1个 2 1个 3     
已邀请:
        int数组的内容可能不是引用,但int []变量却是。通过设置
b = a
,您正在复制引用,并且两个数组都指向同一块内存。     
        我在这里描述你在做什么: 创建一个整数数组
int[] a = new int[5];
创建对创建数组array3的引用 将整数添加到数组“ a”,位置0 覆盖先前添加的整数,因为b [0]指向与a [0]相同的位置 将整数添加到数组“ a”的位置1 再次覆盖先前添加的整数,因为b [1]指向与a [1]相同的位置     
        您未按
int[] b = a
创建新实例 如果您需要新实例(以及您的预期结果),请添加
clone()
int[] b = a.clone()
祝好运     
        
a
b
都指向同一数组。更改
a
b
的值将更改另一个的相同值。     

要回复问题请先登录注册