先看看下面的代码,大家猜猜输出是什么
package com.captain.test;
public class ArrayTest {
public static void main(String[] args){
//新建一个对象(OneNum)数组(赋值为5、3、4)
OneNum[] ac = {new OneNum(5),new OneNum(3),new OneNum(4)};
//新建一个与ac同长度的对象(OneNum)数组
OneNum[] newac = new OneNum[ac.length];
//将ac中的对象付给新数组中(newac)
for (int i = 0;i
newac[i] = ac[i];
System.out.print(ac[i].value+";");
}
System.out.println();
//将新数组的第一个元素的值改为10
newac[0].value = 10;
//显示原数组(ac)的第一个元素的值
System.out.print(ac[0].value);
}
}
class OneNum {
public int value;
public OneNum(int i) {
this.value = i;
}
}
输出为:
5;3;4;
10
可见,新数组其实也是对原数组对象的修改,也就是说新数组中的对象是原数组对象的引用,两个数组中的对象是相同的。