Can anyone tell me when to use equals() and "==" operator? I know that equals() method is used to compare the values of Strings. Also I know that "==" is used to check the references. What it exactly means?
1 Answers
Imagine two cars, for a moment. Let's say they're a green Toyota Corolla and an orange Ferrari. You want to compare them--are they similar? Yes; they're both cars. But, they have different properties. Their values (literally and figuratively) are not equal, and when I talk about the Corolla, I'm definitely not talking about the Ferrari. When I refer to one, I'm not referring to the other.
Now, imagine that I'm talking with you about a red Corolla. You also have a red Corolla. Neat! We have the same car! Except, they aren't exactly the same car, because they're two different cars. They just happen to have the same value. I can have mine painted and it won't change yours, or I could crash mine, and they won't have the same value. Comparing our two cars would be like using the equals()
method. We could say they have the same value (until I crash mine, or change it some other way).
But, if we're each talking about a red Corolla, and it turns out I bought the Corolla from someone you sold yours to--hey, we're talking about the same Corolla! We're actually referring to the same exact thing. If I crash my Corolla, I've also crashed your (former) Corolla. If I paint it, it's still the same car. Checking whether we're talking about the exact same thing is reference equality.

- 831
- 6
- 19