ThiepLV
ThiepLV

Reputation: 1279

How do you create a String object

I don't understand why you create a String object as follows:

String stringObj = "";

I think, it should be:

String obj = new String();

Upvotes: 3

Views: 294

Answers (2)

kosa
kosa

Reputation: 66647

String stringObj = "";

Is called as String literals. They are interned.

What that means is, let us say if you have

String stringObj = "";
String stringObj2 = "";
String stringObj3 = "";

All 3 references (stringObj, stringObj2, stringObj3) points to same memory location.

String obj = new String();

This syntax creates new String object on every invocation.

What that means is, let us say if you have:

String stringObj = new String();
String stringObj2 = new String();
String stringObj3 = new String();

Three new (separate) String objects will be created and point to different memory locations.

Upvotes: 5

Sergey Kalinichenko
Sergey Kalinichenko

Reputation: 726669

Java compiler has special syntax for creating string objects from string literals. When you write

String stringObj = "";

Java creates a new String object, ans assigns it to stringObj.

Note that this is not directly equivalent to new String(), because strings instantiated from string literals are interned. This means that strings created from the same literal are not only object-equal, but also reference-equal (i.e. reference the same object).

Upvotes: 4

Related Questions