-1
public static void main(String[] args)
{
    String literalstr = "ABC";
    String literalstr2 = "ABC";
    String str = new String("ABC");
    String str2 = new String("ABC"); 

if (literalstr == literalstr2)
{
     System.out.println("Literal String... I use String Pooling");
}
if (str != str2)
{
      System.out.println("Object String... I dont use String Pooling");
}
if (str.intern() == str2.intern())
{
     System.out.println("Interning ... I use String Pooling");
}
    // System.out.println(ric2);
}

What is the purpose of intern()?

C Snover
  • 17,908
  • 5
  • 29
  • 39
loknath
  • 1,362
  • 16
  • 25
  • google will give you a good result if you will search....what you will find difficult to find in google that you should ask here. – Android Killer Mar 10 '14 at 12:43

1 Answers1

1

Just read the Java doc, and it will tell you :

Returns a canonical representation for the string object.

A pool of strings, initially empty, is maintained privately by the class String.

When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.

It follows that for any two strings s and t, s.intern() == t.intern() is true if and only if s.equals(t) is true.

All literal strings and string-valued constant expressions are interned. String literals are defined in §3.10.5 of the Java Language Specification

Community
  • 1
  • 1
Salah
  • 8,567
  • 3
  • 26
  • 43