我明白,所有的東西都是通過java引用的。但是爲什麼在這種情況下它不起作用呢?我曾認爲它應該打印出「仇恨」而不是「愛」。爲什麼不通過推薦工作?
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);
}
}
引用是通過值傳遞的,這就是爲什麼。 – 2013-03-13 00:18:40
請參閱關於[這個問題]的討論(http://stackoverflow.com/questions/5835386/java-string-variable-setting-reference-or-value) – Gus 2013-03-13 00:26:35
在Java中,所有事情都是**按值傳遞**。恰巧,對象的「值」是對其在堆中的位置的引用。 – 2013-03-13 00:28:26