public class AboutStrings{
public static void main(String args[]){
String s1="hello";
String s2="hel";
String s3="lo";
String s4=s2+s3;
//to know the hash codes of s1,s4.
System.out.println(s1.hashCode());
System.out.println(s4.hashCode());
// these two s1 and s4 are having same hashcodes.
if(s1==s4){
System.out.println("s1 and s4 are same.");
}else
System.out.println("s1 and s4 are not same.");
}
}
Somebody told me that, == operator compares references of
the objects.
In the above example even though s1 and s4 are refering to
same object(having same hash codes),
it is printing s1 and s4 are not same.
Can anybody explain in detail why it is behaving like this?
Thanks in Advance
RavuriVinod
Answer Posted / vishal arora
it is true that == compares the refernce but in this case
it is retuning the false because the refernce is not the
same.
Strings are final in Java
so s4=s2+s3 will create a new String and s1 and s4 will
refer to two differnt strings
also hashcode will be equal for the same refernce but it
may also be equal for differnt refernces hascode is nothing
but a bucket so there can be multiple object refernce in
same bucket the only condition is for equals method
returning true must have same hashcode
so always use .equals methods and not == to compare the
strings
| Is This Answer Correct ? | 10 Yes | 0 No |
Post New Answer View All Answers
What are the advantages of java over C++?
What all methods are used to prevent thread execution ?
Can a class be declared as static?
What is the difference between error and an exception?
What is the use of callablestatement?
Can a static class have a constructor java?
Can we synchronize static methods in java?
Is java an ide?
Can a static class have a constructor?
Java openings 3 - 5 years, Lnt Infotech. requirements - core java, J2ee, struts, hibernate Interview Date:- 19 March 2011 Time:- 9:00 AM to 12:00 Pm Interview Location - L & T Infotech, Manapakkam, Chennai Refererral PS NO:- 291649 (Please mention this when u fill the form only then u will be considered for interview) Documents Required:- Latest Resume, Photograph and last 3 payslips Mail me on vasan2211@gmail.com once u appear for interview
What is a instance variable?
Why use string handling in Java?
What is stringjoiner ?
How do you write a scanner class in java?
What environment variables are required to be set on a machine in order to run Java programs?