Java17을 기준으로 작성했습니다.
String
equalspublic boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
return (anObject instanceof String aString)
&& (!COMPACT_STRINGS || this.coder == aString.coder)
&& StringLatin1.equals(value, aString.value);
}
==
키워드를 통해 두 객체의 동일성
여부를 판단Integer
equalspublic boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
==
키워드를 통해 같은지 판단Object
equals==
연산자를 통해 두 객체가 동일하다면 동등하므로 true를 반환
그렇지 않다면 첫 번째 매개 변수로 들어온 객체의 equals()
메소드를 호출하여 동등성을 판단
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
equals()
메소드를 재정의하지 않았다면 동일성 비교를 하게 될 것이다.equals()
메소드를 재정의해 주어야 한다.