Java输出引用

时间:2017-06-25 20:15:36

标签: java

我有点困难时间绕过这个,所以我希望你们可以帮助我。为什么[0]在这个例子中被替换为400

int [] a = {1, 2, 3 } ; 
int [] b = a ;
b[0] = 400 ;
System.out.println(a[0]);

虽然在这个例子中c仍然是2?我只是不明白这一点。

int c = 2 ; 
int d = c ;
d = 1 ; 
System.out.println(c);

关于为什么会发生这种情况的简短解释将非常受欢迎。

1 个答案:

答案 0 :(得分:-2)

在java中,这里相同的数组有两个引用a和b,所以你对b做的任何改变都反映在a中。你可能会说,a和b在这里是一个且只有一个实例化数组的两个别名。

数组也是对象,它们的超类是java中的Object类。 来自[JLS第4.3节],

  

有四种引用类型:类类型(§8),接口   类型(§9),类型变量(§4.4)和数组类型(§10)。

     

在Java编程语言中,数组是对象(§4.3.1),是   动态创建,可以分配给Object类型的变量   (§4.3.2)。可以在数组上调用Object类的所有方法。