Я пытаюсь поменять местами две строки в 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 являются ссылками, и поэтому ссылки следует поменять местами, а новые должны указывать на другую соответственно. В чем я ошибаюсь?