初始化"xyz"时,新建了一个对象。 x = new String("xyz");拷贝了上面的对象的内容并用这些内容新建了一个对象,把x指向这个新的对象。 y = "abc",新建对象"abc",并让y指向它。 x = x+y; 因为String是静态的对象,它的内容是不可变的,所以x+y时用上面得到的x及y的内容新建了一个对象,并让x指向这个新建的对象。 所以共是四个。
初始化"xyz"时,新建了一个对象。 x = new String("xyz");拷贝了上面的对象的内容并用这些内容新建了一个对象,把x指向这个新的对象。 y = "abc",新建对象"abc",并让y指向它。 x = x+y; 因为String是静态的对象,它的内容是不可变的,所以x+y时用上面得到的x及y的内容新建了一个对象,并让x指向这个新建的对象。 所以共是四个。
呵呵,应该清楚了吧? to Tasia(这里是CSDN吗?) ......x = x+y; 因为String是静态的对象,它的内容是不可变的..... ^^^^^^^^^^^ ^^^^^^^^笔误了吧?应该是final,而不是static。
x = new String("xyz");拷贝了上面的对象的内容并用这些内容新建了一个对象,把x指向这个新的对象。
y = "abc",新建对象"abc",并让y指向它。
x = x+y; 因为String是静态的对象,它的内容是不可变的,所以x+y时用上面得到的x及y的内容新建了一个对象,并让x指向这个新建的对象。
所以共是四个。
x = new String("xyz");拷贝了上面的对象的内容并用这些内容新建了一个对象,把x指向这个新的对象。
y = "abc",新建对象"abc",并让y指向它。
x = x+y; 因为String是静态的对象,它的内容是不可变的,所以x+y时用上面得到的x及y的内容新建了一个对象,并让x指向这个新建的对象。
所以共是四个。
to Tasia(这里是CSDN吗?)
......x = x+y; 因为String是静态的对象,它的内容是不可变的.....
^^^^^^^^^^^ ^^^^^^^^笔误了吧?应该是final,而不是static。
补充:
String x=new String("xyz");
这样的写法是不好的,应为它new了两个对象
String x = "xyz";
才是高效的!推荐看看高效java,很多基础问题都会解决的!