aspose file tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes String.intern() Method Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Reply Bookmark "String.intern() Method" Watch "String.intern() Method" New topic
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
    
    1

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
 
I agree. Here's the link: http://jrebel.com/download
 
subject: String.intern() Method
 
Similar Threads
Tricky String question :intern() method
one more with Strings ( == and equals)
Check String for null without error?
question regarding String.intern()
WHEN ARE TWO STRINGS EQUAL?