The difference between equals and == in java
"==" compares two references in Whether the memory points to the same object (that is, the same memory space), that is, whether the storage locations in the memory space are consistent.
equals, commonly used is whether the contents in the object are equal.
The equals method is provided by the Object class and can be rewritten by subclasses (recommended tutorial: java tutorial)
public boolean equals(Object obj) { return (this == obj); }
The default implementation will only return true when the object is compared with itself, which is equivalent to "==" at this time.
Many classes in Java (String class, Date class, File class) have rewritten the equals method. Here is the common String class as an example.
public class Test { public static void main(String[] args) { String num1= "abc"; String num2= "abc"; System.out.println(num1==num2);//true String num3 = new String("abc"); String num4= new String ("abc"); System.out.println(num3==mnum4);//false System.out.println(num3.equals(num4));//true } }
The equals method in Java language is actually left to developers to override, allowing developers to define what conditions two Objects that meet are equal.
It means that the equals method is exactly the same as "=="; but the equals method can be overridden; in the case of "==", if it is a value type, compare whether the values are equal; if it is a reference type, determine the object address are equal.
The above is the detailed content of The difference between equals and == in java. For more information, please follow other related articles on the PHP Chinese website!