I was confused because I heard of it but never had the opportunity to use it. So I googled it and found something interesting.
As per meaning/method summary given in JAVA API Docs :
intern() Returns a canonical representation for the string object.
So actually what it do??
A pool of String initially empty, is maintained privately by String class.
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.
An example is given below :