String str =“这是字符串文字”;
这是字符串文字。像这样声明字符串时,实际上是在String上调用intern()方法。此方法引用内部字符串对象池。如果已经存在一个字符串值“ This is
stringliteral”,则str将引用该字符串,并且不会创建新的String对象。
String str = new String(“这是由新运算符创建的字符串”);
这是字符串对象。在这种方法中,即使引用池中有“这是由新操作员创建的字符串”,JVM也被迫创建新的字符串引用。

这是字符串文字。像这样声明字符串时,实际上是在String上调用intern()方法。此方法引用内部字符串对象池。如果已经存在一个字符串值“ This is
stringliteral”,则str将引用该字符串,并且不会创建新的String对象。
这是字符串对象。在这种方法中,即使引用池中有“这是由新操作员创建的字符串”,JVM也被迫创建新的字符串引用。