✔ 값 타입의 비교

int a = 10;int b = 10;Address a = new Address("서울시","종로구","1번지");Address b = new Address("서울시","종로구","1번지");

자바가 제공하는 객체 비교 2가지 - 동일성 비교 : 인스턴스의 참조 값을 비교, == 사용 - 동등성 비교 : 인스턴스의 값을 비교, equals() 사용

Address 값 타입을 a == b로 동일성 비교하면 둘은 서로 다른 인스턴스이므로 결과는 거짓이다. 이것은 기대한 결과가 아니다. 값 타입은 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야 한다.

따라서 값 타입을 비교할 때는 a.equals(b)를 사용해서 동등성 비교를 해야 한다. 물론 Addressequals() 메소드를 재정의해야 한다.

값 타입의 equals() 메소드를 재정의할 때는 보통 모든 필드의 값을 비교하도록 구현한다.