Thursday, March 14, 2013

What is String Pooling in Java?

When we create string literals jvm maintains all of them in pool known as String pooling.
 for exapmle,

    String str1 = "Hello"; //case 1
    String str2 = "Hello"; //case 2
   
    In case 1, iteral str1 is created newly and kept in the pool. But in case 2, literal str2 refer the str1, it will not create new one instead.
    
       if(str1 == str2) System.out.println("equal"); //Prints equal.
      
       // case 3
      String newString1 = new String("Hello");
      String newString2 = new String("Hello");
      if(newString1 == newString2) System.out.println("equlal"); //No output.
     
      Pooling is done for only string literals. In case 3 it gives no output because both string has a different reference.

No comments:

Post a Comment