如何创建String对象

时间:2013-07-06 02:01:52

标签: java oop

我不明白你为什么要创建一个String对象,如下所示:

String stringObj = "";

我认为应该是:

String obj = new String();

2 个答案:

答案 0 :(得分:5)

String stringObj = "";

被称为String文字。他们是interned

这意味着,如果您有

,请说明
String stringObj = "";
String stringObj2 = "";
String stringObj3 = "";

所有3个引用(stringObjstringObj2stringObj3)都指向相同的内存位置。

String obj = new String();

此语法在每次调用时都会创建新的String对象。

这意味着,如果您有:

,请说明
String stringObj = new String();
String stringObj2 = new String();
String stringObj3 = new String();

将创建三个新的(单独的)String个对象,并指向不同的内存位置。

答案 1 :(得分:4)

Java编译器具有从字符串文字创建字符串对象的特殊语法。当你写

String stringObj = "";

Java创建一个新的String对象,并将其分配给stringObj

请注意,这并不等同于new String(),因为从字符串文字实例化的字符串是interned。这意味着从同一文字创建的字符串不仅对象相等,而且引用相等(即引用相同的对象)。