why equals() method when we have == operator? [duplicate]
This question already has an answer here: How do I compare strings in Java? 23 answers When i see the implementation of equals() method it does nothing but same as what == does. So my question is what was the need to have this as separate method when we have == operator which does the same work? You can not overload the == operator, but you can override equals(Object) if you want it to behave differently from the == operator, i.e. not compare references but actually compare the objects (e.g. using all or some of their fields). Also, if you do override equals(Object) , have a look at hashCode()