我有以下代码:
public class PassReferenceByValue {
static void modify(String m)
{
m = "Else";
}
public static void main(String [] arg)
{
String actual = "Something";
modify(actual);
System.out.println(actual);
}
}
它将打印Something
.
我知道Java根本不传递对象。相反,它会创建传递的引用的副本。如果我理解正确,当我调用modify(actual)
Java 时,会创建对同一对象的另一个引用。所以,现在我们有两个引用对象的引用actual
。现在,通过第二个引用,我们修改了对象,对象应该会改变。对象actual
应该改变,因为通过复制的引用我们对对象具有相同的访问权限。
有人可以解释一下我在哪里无法理解按值传递引用的概念吗?