Home  >  Article  >  Java  >  Why are string literals stored in string constant pool in Java?

Why are string literals stored in string constant pool in Java?

WBOY
WBOYforward
2023-09-11 21:17:02741browse

Why are string literals stored in string constant pool in Java?

There are two ways to create a String object in Java

  • Use the new operator
String str = new String("Tutorials Point");
  • By using string literals
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.

Example

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);
   }
}

Output

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!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete

Related articles

See more