ZDNetChina中文社区 » 开发语言 » Java技术 » 求教一道简单的java题


2008-4-21 17:18 CNET开发专家团
求教一道简单的java题

//为什么a[3]的结果也是100呢?
<br>public class Example2_3
<br>{
<br>    public static void main(String args[])
<br>    {
<br>     int a[]={1,2,3,4};
<br>     int b[];
<br>     System.out.println(a[3]);
<br>     b=a;
<br>     b[3]=100;
<br>     System.out.println(a[3]);
<br>     System.out.println(b[3]);
<br>    }
<br>}  
<br>运行结果:
<br>4
<br>100
<br>100

2008-4-21 17:18 CNET开发专家团
-------------

2008-10-9 18:53 lordtan
这个是因为数组是一种特殊的数据类型
它是引用数据类型
操作数组的原理和操作对象的原理差不多
b = a;这里将数组a的值赋给b,这里复制的并不是真正的值,而是a的引用,a和b现在所指的是同一个对象
b[3] = 100; 这里将a和b所指的同一个对象中的下标为3的数值改变了
所以就会出现这种结果
不知道这样解释能懂不

2008-10-9 21:25 qq675508756
b=a这句话实际上是就是b指向a的地址
因此当b[3]的值变化的时候实际上就是a[3]这个地址里面的值变了
所以a[3]的值也就变了

页: [1]
查看完整版本: 求教一道简单的java题


Powered by Discuz!  Archiver   © 2001-2006 Comsenz Inc.