【发布时间】:2013-03-13 00:17:18
【问题描述】:
我知道在 java 中一切都是通过引用传递的。但为什么它在这种情况下不起作用?我原以为它应该打印出“Hate”而不是“Love”。
class Test {
static class Str {
public String str;
public void set(String str) {
this.str = str;
}
}
public static void main(String[] args) {
Str s = new Str();
String str = "Love";
s.set(str);
str = "Hate";
System.out.println(s.str);
}
}
【问题讨论】:
-
引用是按值传递的,这就是原因。
-
查看This Question的讨论
-
在 Java 中,一切都是按值传递。碰巧一个对象的“值”是对它在堆中位置的引用。
-
“我知道在java中一切都是通过引用传递的。”然后你就有了一个基本的mis-理解。