Develofer Develofer - 1 month ago 15
Java Question

String Literal vs String Object

I read a lot about String Literal vs String Object. I read that String literal is stored in a String pool and String object will create an object in the heap. I'm quite confused in an instance variable of a class that is initialized using "".

class A {
private String aStr = "ASTRING";
}


Will
aStr
will be added to String pool or will it create an object in the heap?

Answer

Whenever new Keyword is used then object is created in heap. Here new Keyword is not used so string object is created in string pool.
For example:

String s1= new String("string object");

In the above example two objects are being created one is string object in string pool since it is in double quotes another is s1 which is created in heap as new keyword is used.