What is the difference between String s1 = "Hello" and String s1= new String("Hello") in java?


When you store a String as

String str1 = "Hello";

directly, then JVM creates a String object with the given value in a separate block of memory known as String constant pool.



And whenever we try to create another String as

String str2 = "Hello";

JVM verifies whether any String object with the same value exists in the String constant pool, if so, instead of creating a new object JVM assigns the reference of the existing object to the new variable.

And when we store String as

String str = new String("Hello");

using the new keyword, a new object with the given value is created irrespective of the contents of the String constant pool.

Updated on: 19-Feb-2020

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements