public class Example2_3 {
public static void main (String args[])
{
int a[]={1,2,3,4};
int b[];
System.out.println(a[3]);

b=a;
b[3]=100; System.out.println(a[3]);
System.out.println(b[3]);
}
}
为什么结果是:4 100 100   而不是:4 4 100呢  a数组的数值赋给b数组的数值,当b数组的数值改变后为什么会影响到a数组的数值的?想不明白啊~

解决方案 »

  1.   

    b=a并没有创建一个新的数组
    而只是把b指向a所指向的数组,即两个引用指向同一个数组
      

  2.   

    数组是一个对象,你的a,b是引用,开始a指向数组,后面b指向数组,你操作的是一个对象,所以,,,
      

  3.   

    b = a  ; //只是把b所指向的引用 改变为 a指向的数组引用  ,没有创建新的数组,所以 改变b 也就是改变a ,因为他们已经指向了相同的内存地址了 ;
      

  4.   


        楼上正解!再罗嗦一下,Java 中数组也是对象。