我正在尝试在Java中交换两个字符串。我从未真正理解“字符串是不可变的”。我在理论上理解它,但在实践中从未遇到过。
此外,由于String在Java中是一个对象而不是原始类型,我不明白为什么以下代码会两次打印相同的结果,而不是交换这两个单词!
public static void main(String[] args)
{
String s1 = "Hello";
String s2 = "World";
System.out.println(s1 + " " + s2);
Swap(s1, s2);
System.out.println(s1 + " " + s2);
}
public static void Swap(String s1, String s2)
{
String temp = s1;
s1 = s2;
s2 = temp;
}
我希望它能够打印
Hello World
World Hello
但它正在打印。
Hello World
Hello World
我以为s1和s2是引用,因此应该交换引用,使新的引用分别指向另一个引用。我错在哪里了?