값 타입의 비교

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

  • int a == int btrue

  • Address a == Address bfalse

    • 객체는 참조값으로 비교한다.

동일성(identity) 비교

  • 인스턴스의 참조 값을 비교하는 방법

  • ==을 사용한다.

동등성(equivalence) 비교

  • 인스턴스의 을 비교하는 방법

  • equals()를 사용한다.

따라서 값 타입은 a.equals(b)로 동등성 비교를 해야 한다.

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

equals() 기본 구현이 == 비교를 하기 때문에 override 해서 사용해야 한다.

equals()를 만들 때는 웬만하면 자동으로 생성해주는 코드를 사용한다.

재정의 해주면 true로 나오게 된다.

Last updated

Was this helpful?