当前位置: 代码迷 >> Java相关 >> 我刚学JAVA的,有个数组的问题!!
  详细解决方案

我刚学JAVA的,有个数组的问题!!

热度:56   发布时间:2007-05-23 21:20:33.0
我刚学JAVA的,有个数组的问题!!

public class Example2_3
{ public static void main(String args[])
{ int a[]={100,200,300};
int b[]={10,11,12,13,14,15,16};
b=a;
b[0]=123456;
System.out.println("数组a:"+a[0]+","+a[1]+","+a[2]);
System.out.println("数组b:"+b[0]+","+b[1]+","+b[2]);
System.out.println("数组b的长度:"+b.length);
}
}
运行后,为什么a[]={123456,200,300},
而不是a[]={100,200,300}??

搜索更多相关的解决方案: JAVA  

----------------解决方案--------------------------------------------------------
当然拉,你把原来的数组b丢掉得到新的数组a[]={100,200,300}=b[],而你又在下面定义了b[0]=123456,就把100用123456代替了
----------------解决方案--------------------------------------------------------
数组是对象,a和b都是数组对象的引用,b=a后,a和b都是指向同一数组对象,即a equals(b)为true;当然b[0]=123456,改变了b[0]的值,因而a[0]也为b[0]的值!
----------------解决方案--------------------------------------------------------
学习
----------------解决方案--------------------------------------------------------
3楼讲的很对
----------------解决方案--------------------------------------------------------
回复:(zhufeifei)数组是对象,a和b都是数组对象的引...

那为什么换成数据类型的时候,a!=b了呢???
public class Example2_3
{ public static void main(String args[])
{
// int a[]={100,200,300};
// int b[]={10,11,12,13,14,15,16};
int a=20;
int b=60;
b=a;
// b[0]=123456;
b=1234;
// System.out.println("数组a:"+a[0]+","+a[1]+","+a[2]);
// System.out.println("数组b:"+b[0]+","+b[1]+","+b[2]);
//System.out.println("数组b的长度:"+b.length);
System.out.println("a="+a);
System.out.println("b="+b);
}
}


----------------解决方案--------------------------------------------------------
两者不一样 数组类似于对象 而基本数据类型不是对象 一个是对应用进行操作 并非对实际数据进行操作 而基本数据类型则是对实际数据进行操作的

----------------解决方案--------------------------------------------------------

谢谢各位!!!!


----------------解决方案--------------------------------------------------------
请你理解对象与基本数据类型,引用和具体值
----------------解决方案--------------------------------------------------------
  相关解决方案