String.intern in Java
String.intern returns a canonical representation for the string
object. A pool of strings, initially empty, is maintained privately by
the class String. All literal strings and string-valued constant
expressions are stored in this pool.
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. By using intern
one can get better performance as compared to equals method in String
class. equals does the character by character that you probably want.
There are some disadvantages of intern. If we start using intern
with every string then pool size will increase and could lead to memory
problem. Secondly in case of bigger pool, finding a string could be
more costly that having character by character comparison.
Related Post
Comments
Leave a Reply