값 타입의 비교
값 타입은 인스턴스가 달라도 그 안에 있는 값이 같으면 같은 것으로 본다.

int a==int b는trueAddress a==Address b는false객체는 참조값으로 비교한다.
동일성(identity) 비교
인스턴스의 참조 값을 비교하는 방법
==을 사용한다.
동등성(equivalence) 비교
인스턴스의 값을 비교하는 방법
equals()를 사용한다.
따라서 값 타입은 a.equals(b)로 동등성 비교를 해야 한다.

그런데 equals()로 비교해도 여전히 false로 나온다.

equals() 기본 구현이 == 비교를 하기 때문에 override 해서 사용해야 한다.
equals()를 만들 때는 웬만하면 자동으로 생성해주는 코드를 사용한다.

재정의 해주면 true로 나오게 된다.
Last updated
Was this helpful?