| Author |
String.intern() Method
|
Chinmay Kant
Greenhorn
Joined: Feb 04, 2008
Posts: 20
|
|
Code:- ------------------------------------------------------------------------------------------------------------------------------------------------------ public class Test21{ public static void main(String a[]){ String s1 = new String("Hai"); String s2 = "Hai"; String s3 = new String("Hai").intern(); System.out.println(s1 == s2); System.out.println(s1 == s3); System.out.println(s2 == s3); } } ------------------------------------------------------------------------------------------------------------------------------------------------------ The Answer is false false true SO, why Answer cannot be false true false. ------------------------------------------------------------------------------------------------------------------------------------------------------ Here are the details of intern method from javadocs:- public String intern() 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. ------------------------------------------------------------------------------------------------------------------------------------------------------
|
Thanks and Regards,
Chinmay
|
 |
Sagar Rohankar
Ranch Hand
Joined: Feb 19, 2008
Posts: 2896
|
|
hi In java , == operator when applied to reference , then it checks for 'refernce ' equality( Each refernce in java has a hash code value) and not for 'value' contained by that reference. To check whether two string contain same value , use equal() method. hope this answer a lil bit to you. regardz; Sagar
|
[LEARNING bLOG] | [Freelance Web Designer] | [and "Rohan" is part of my surname]
|
 |
Sandip Kaviman
Ranch Hand
Joined: Apr 27, 2004
Posts: 49
|
|
It is because of new String("Hai"); When you use new keyword object is created in nonpool memory. Thanks Sandip
|
 |
 |
|
|
subject: String.intern() Method
|
|
|