据我所知,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);
}
}
最佳答案
在main
函数中,str
仅存储对字符串的引用。当执行 str = "hate"
时,引用会发生变化,但原始对象 "love"
已存储在 s.str
中并保留在那里。
参见this以获得更多说明。
关于java - 为什么按引用传递不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15374745/