File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes String == and equals() doubt Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "String == and equals() doubt" Watch "String == and equals() doubt" New topic

String == and equals() doubt

Shiva Mohan
Ranch Hand

Joined: Jan 05, 2006
Posts: 481

I thought it would output false true.But it gave true

(i==j)---------I and j are references having same value but different object references.Then how come it will produce true.Please explain it for me.
Ryan McGuire
Ranch Hand

Joined: Feb 18, 2005
Posts: 1044
The problem isn't with your understanding of == and equals(); it's a question of what you're printing out.

So let's say i and j are two different objects. That means that the condition in your first if would be false. Therefore you print the boolean value of i!=j, as opposed to the String "i!=j". Since i is NOT == j, the expression i!=j is true. That's what gets printed: "true".

You can collapse that first if/else with its two println() statements into just a single...

You have a similar problem with the second if. Let's say i="Ryan" and j="Shiva". The expression in the if will be false, so it goes to the else part. There it prints out the value of the expression !i.equals(j). Since i.equals(j) is false, NOT i.equals(j) is true. So "true" gets printed.

Just replace that whole if/then with...

[ March 29, 2006: Message edited by: Ryan McGuire ]
jQuery in Action, 3rd edition
subject: String == and equals() doubt
It's not a secret anymore!