一个关于数组的JAVA小程序,有点不太明白。
程序如下:publicclassShuzu{publicstaticvoidmain(String[]args){inta[]={1,2,3};intb[]={4,5,6...
程序如下:
public class Shuzu{
public static void main(String[] args){
int a[] = {1,2,3};
int b[] = {4,5,6,7,8,9};
b = a;
b[0] = 999;
System.out.println("a[] = "+a[0]+","+a[1]+","+a[2]);
System.out.println("b[] = "+b[0]+","+b[1]+","+b[2]);
System.out.println("Length of b is "+b.length);
}
}
为什么最后a[0]也等于999了呀?
是不是涉及到JAVA内部的存储结构呀?
望高手给与解答。 展开
public class Shuzu{
public static void main(String[] args){
int a[] = {1,2,3};
int b[] = {4,5,6,7,8,9};
b = a;
b[0] = 999;
System.out.println("a[] = "+a[0]+","+a[1]+","+a[2]);
System.out.println("b[] = "+b[0]+","+b[1]+","+b[2]);
System.out.println("Length of b is "+b.length);
}
}
为什么最后a[0]也等于999了呀?
是不是涉及到JAVA内部的存储结构呀?
望高手给与解答。 展开
5个回答
展开全部
b = a;
表示把b的引用指向了a,所以一样了
表示把b的引用指向了a,所以一样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的 你的b=a事实上是把{1,2,3}这个数组的引用给了b 它们两个指向的是同一个堆里的内存空间 所以更改b a也会更改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组是地址传递,b=a, 哪么b和a指向同一个对象,所以b和a是同一内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个涉及到地址的引用,虽然Java中没有指针的概念,但是你写一个
b=a;
那么数组a的地址b也引用在,
b[0]=999,就改变了数组的数据,所以a[0]也就改变了,不知道你懂不懂
b=a;
那么数组a的地址b也引用在,
b[0]=999,就改变了数组的数据,所以a[0]也就改变了,不知道你懂不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询