自己写了一个Swap测试类,代码如下:
public class Swap5
{
public static void main(String[] args)
{
// String x = "x111";
// String y = "y111";
String x = new String("x111");
String y = new String("y111");
swap(x, y);
System.out.println(x);
System.out.println(y);
}
public static void swap(String a, String b)
{
String temp = a;
a = b;
b = temp;
}
}
运行结果:
x111
y111
注释部分运行结果也是一样。
用字面值方式给字符串赋值是生成在String Pool(字符串池)中,交换不了可以理解,但是new String();应该是生成在堆中,为什么也交换不了呢?