我知道溢出、性能下降等问题,但我需要在没有任何临时变量的情况下交换两个字符串值。我了解构造函数,并找到了一些有效的方法,但无法理解其中一个。
String a = "abc";
String b = "def";
b = a + (a = b).substring(0, 0);
System.out.printf("A: %s, B: %s", a, b);
输出结果显示明显的值已经被交换了。当我看到这个结果时,似乎与优先级操作有关,但我无法在脑海中理清它。请问是否有人能够解释一下发生了什么?