当前位置: 代码迷 >> J2EE >> 关于java基础=赋值,该如何处理
  详细解决方案

关于java基础=赋值,该如何处理

热度:566   发布时间:2016-04-17 23:24:20.0
关于java基础=赋值
int[] a={9,8,3,5,4,2};
int count=a.length;
int[] b=a;
for(int i=0;i<count;i++){
b[i]=a[count-i-1];
}
System.out.println("bbbbb"+b[0]+b[1]+b[2]+b[3]+b[4]+b[5]);
System.out.println("aaaaa"+a[0]+a[1]+a[2]+a[3]+a[4]+a[5]);

}
这简单的一段代码,输出为
bbbbb245542
aaaaa245542
但是把int[] b=9,8,3,5,4,2};则输出
bbbbb245389
aaaaa983542
完成数组倒叙,我想问下b=a不是把a赋值给b吗,为什么每次for循环数组a也变了,还有for循环每次循环真个main方法都会从新执行吗,我debug看了下,每次循环,for循环外的a的值也会变。
------解决思路----------------------
int[]b = a  是为b开辟块内存,地址指向a的地址,这个时候对b的数组操作是对这块地址进行操作,而a也指向这个地址,所以a数组的值也发生了变化。
表达能力不太好,希望对你有帮助
  相关解决方案