What is the difference between String object and String literal.
What is the difference between the line no1 and 2. Which one is better. When to use either. Does declaring a Sttring name as final has helps in selecting 1 or 2.
Joined: Mar 12, 2011
The JVM maintains a pool of Strings, so that frequently used values can be reused instead of being instantiated all over again. In the following code, the two string variables refer to the same String instance:
Strings a and b are both literals. Their values are assigned explicitly rather than through the use of a constructor. If you assign a String using the new keyword, that value does not get added to the String pool. A new String instance is always created. It gets created even if that String value already exists in the pool and could have been used instead.
String c is NOT the same instance as Strings a and b.
It's almost always preferable to use literals instead of the String constructor.