There are two ways to create a String object in Java
String str = new String("Tutorials Point");
String str = "Tutorials Point";
Whenever we call new String() in Java, it will create an object in the heap memory and the string literal will go into the string constant pool ( SCP).
For objects, the JVM uses SCP, which is for efficient memory management in Java. Unlike other Java objects, they do not manage String objects in the heap area, but introduce a String constant pool. An important feature of the String constant pool is that if there is already a String constant in the pool, the same String object will not be created.
public class SCPDemo { public static void main (String args[]) { String s1 = "Tutorials Point"; String s2 = "Tutorials Point"; System.out.println("s1 and s2 are string literals:"); System.out.println(s1 == s2); String s3 = new String("Tutorials Point"); String s4 = new String("Tutorials Point"); System.out.println("s3 and s4 with new operator:"); System.out.println(s3 == s4); } }
s1 and s2 are string literals: true s3 and s4 with new operator: false
The above is the detailed content of Why are string literals stored in string constant pool in Java?. For more information, please follow other related articles on the PHP Chinese website!