This week's book giveaway is in the Jython/Python forum.
We're giving away four copies of Murach's Python Programming and have Michael Urban and Joel Murach on-line!
See this thread for details.
Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Unable to undustand the System.out.println behaviour  RSS feed

 
Shyam kumar
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Greetings Ranchers,

Please have a look at the code snippet below:

1. StringBuffer str1=new StringBuffer("Hello World!");
2. String str2=new String("Hello World!");
3. System.out.println("str1.hashcode()"+str1.hashCode());
4. System.out.println("str2.hashcode()"+str2.hashCode());
5. System.out.println("str1 == str2"+str1 == str2);

When I'm executing the above piece of code, I'm getting the following output
---------- run ----------
str1.hashcode()15655788
str2.hashcode()-969099747
false
Output completed (0 sec consumed) - Normal Termination

Ideally line no. 5 is attempting to compare two incompatible types, String and StringBufffer and should throw an error if we rewrite the line as

5. System.out.println("str1 == str2"+(str1 == str2));

BUT, the strange part is that I'm getting output as false. And unlike the first two output the text string "str1 == str2" is also not printed.

Can anyone explain me the sanity behind this behaviour?
 
Joe Harry
Ranch Hand
Posts: 10128
3
Eclipse IDE Mac PPC Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Above,

The line ("str1 == str2"+(str1 == str2)); returns false because you are comparing the references to two different objects. str1 points to a different object and str2 points to a different object in the memory. so the O/P false.

For the System.out.println("str1 == str2"+str1 == str2);, the compiler interprets it as, (("str1 == str2"+str1) == str2); bcos + has higher precedence than ==.

Regards,
Jothi Shankar Kumar. S
 
Shyam kumar
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That's Great Shankar
Thanks a lot...
 
Consider Paul's rocket mass heater.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!