从我所了解的Java(这可以说很少= P),Java对待原始值不同于对象。我能想到的一个例子是,基元是按值传递的,而对象是通过它们引用的值传递的。浅拷贝与基元
延伸这一点,我已经实现创建int数组码,和浅复制它交给INT的一个新的数组:
public class Test {
public static void main(String[] args){
int[] array = {2,3,4,5};
int[] copy = array;
copy[1] = 0;
for (int i : copy){
System.out.print(i);}
System.out.println();
for (int i : array){
System.out.print(i);}
}
}
然而,输出是:
2045
2045
所以,我困惑的是为什么两个阵列都改变了?我认为当我们复制原始数组时,我们只复制了元素的值(因为我们正在处理基元)?
没有,你只是创建了第二个参考指向同一个数组。 – Stultuske
ooooooh,这很有道理。因此,如果我要创建一个新的int []副本并将每个元素从数组单独复制到for循环中,则不会发生这种情况。确实是 – javanewbie
。多一点炒锅,但它会解决你的问题 – Stultuske