Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


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

Answers were Sorted based on User's Feedback



public class AboutStrings{ public static void main(String args[]){ String s1="hello"; S..

Answer / 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

public class AboutStrings{ public static void main(String args[]){ String s1="hello"; S..

Answer / manikandansit

Hello Mr.Sakthivel(gceb)(n.p)pollachi

he gave a code and it will print s1 and s4 not same but u
said it will print s1 and s4 same,pls check the answer or ur
eye.run the java code and post ur answer don't post wrong
answer.

Is This Answer Correct ?    1 Yes 0 No

public class AboutStrings{ public static void main(String args[]){ String s1="hello"; S..

Answer / saket

because it is a string so it didn,t equate the reference .
for string u have to used s1.equals(s4) for correct
answer.........

Is This Answer Correct ?    1 Yes 3 No

public class AboutStrings{ public static void main(String args[]){ String s1="hello"; S..

Answer / sakthivel(gceb)(n.p)pollachi

in the above example it displays the output s1 and s4 are
same

Is This Answer Correct ?    1 Yes 7 No

Post New Answer

More Core Java Interview Questions

What is the difference between actual and formal parameters?

0 Answers  


Can I extend singleton class in java?

0 Answers  


Given: 11. public static void main(String[] args) { 12. Integer i = uew Integer(1) + new Integer(2); 13. switch(i) { 14. case 3: System.out.println(”three”); break; 15. default: System.out.println(”other”); break; 16. } 17. } ‘What is the result? 1 three 2 other 3 An exception is thrown at runtime. 4 Compilation fails because of an error on line 12.

9 Answers  


What is instanceof keyword?

0 Answers  


what is the difference between ArrayList and Vector

19 Answers   KPIT, Sasken, Satyam, Span Infotech, Wipro,


What does int argc char * argv [] mean?

0 Answers  


Which keyword specify that a variable is effectively final ?

0 Answers  


Differentiate between vector and array list.

0 Answers  


What does jre stand for?

0 Answers  


What are types of Java applications?

14 Answers  


Is empty string in java?

0 Answers  


What are daemon Threads in java?

0 Answers   Impetus,


Categories