现在我知道Java是纯粹按值传递的,但是实例变量是按引用传递的吗?
这就是我的意思(我知道这段代码很糟糕,但它是伪代码:
//Instance variables
private Object[] array = new Object[10];
array[4] = new Object[5];
//Private method
private Object ar(int x)
{
return array[x];
}
//Inside Main or some other method
ar(4)[0] = "Foo";
现在,由于 array
是实例变量,因此 array[4]
中数组的第一个槽是否会更改为“Foo”?
澄清:
我知道一切都是按值传递的。但我们正在谈论调用实例变量中包含的内容,请重点关注这一点。谢谢。
最佳答案
是的,array[4]
中的第一个槽将更改为 "Foo"
在 Java 中,一切都是按值传递的。传递对象时,对象的引用是按值传递的。对于您的示例,array[4]
中包含的对象是从 ar
方法返回的。
关于java - Java中的实例变量是通过引用传递的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5266309/