java - Java中的实例变量是通过引用传递的吗?

标签 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";

现在,由于 array 是实例变量,因此 array[4] 中数组的第一个槽是否会更改为“Foo”?

澄清:

我知道一切都是按值传递的。但我们正在谈论调用实例变量中包含的内容,请重点关注这一点。谢谢。

最佳答案

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

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

关于java - Java中的实例变量是通过引用传递的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5266309/

相关文章:

java - maven项目中的hdf5

java - 如何将两个 SmsMessage 合并为一个 SmsMessage?

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

javascript - JavaScript 函数中引用数组的模式

java - 为什么 Double 变量的比较返回 false?

java - 检测 USB 连接并检查它是否是 PC

java - Logback 找不到资源 logback.xml

swift - swift3中的字符串变量比较

javascript - 我可以使用 ScratchPad/Greasemonkey 临时修改现有的远程网站吗?

c# - 拆分项目 VB/C# 和引用