String s1="abc";
String s2=new String("abc");
s1和s2有什么区别?
s2在内存中有两个对象。---->先给你一个API官方的解释:String(String original)
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。
-------------------------------------->然后我说下我的理解:String s2=new String("abc");是由两部分组成:第一部分("abc");“abc"已经是一个对象,new 又是一个对象,就是两个对象了,同时(NEW的对象是"abc"对象的副本,但也是独立对象),同时赋值给一个变量S2.
----------------------------------------也就是S2这个变量同时指针指向了2个对象。一个"abc",一个由new产生的"abc"副本。
|