实例变量是否通过Java引用传递?

Nic*_*egg 0 java variables reference pass-by-reference

现在我知道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";
Run Code Online (Sandbox Code Playgroud)

现在,数组中的第一个插槽是否array[4]会更改为"Foo",因为它array是一个实例变量?

澄清:

我知道一切都是通过价值传递的.但是我们正在谈论调用实例变量中包含的东西,请关注它.谢谢.

dby*_*rne 5

是的,第一个插槽array[4]将更改为"Foo"

在Java中,一切都按值传递.传递对象时,对值的引用将按值传递.对于您的示例,array[4]ar方法返回包含的对象.