我有点困难时间绕过这个,所以我希望你们可以帮助我。为什么[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);
关于为什么会发生这种情况的简短解释将非常受欢迎。
答案 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类的所有方法。