본문 바로가기

개발중/Java

Java 객체/ 기본값 타입의 비교

728x90
반응형

🟣 값 타입의 비교

 

int a, b 는 같다고 표현한다

 

int a = 10;

int b = 10;

 

 

Binsoo a, b 는 같다고 표현한다

 

Binsoo a = new Binsoo( "java", "01011112222" )

Binsoo b = new Binsoo( "java", "01011112222" )

 


🟣 자바가 제공하는 객체 비교는 두 가지이다.

 

✅ 동등성 비교

  • 동등성 : Equivalence
  • 인스턴스 값을 비교
  • equals() 사용

 

 동일성 비교

  • 동일성 : identity
  • 인스턴스 참조 값을 비교
  • == 사용

Binsoo 객체 값 타입을 a == b 로 동일성 비교를 하면

둘은 서로 다른 인스턴스이므로 결과는 거짓이다.

 

하지만 이것은 기대한 결과가 아니다.

 

값 타입은 비록 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야 한다.

따라서 값 타입을 비교할 때는 a.equals(b) 를 사용해서 동등성 비교를 해야한다.

 

Binsoo 객체의 equals() 를 재구현 할 것을 권장하며

재정의 할 때는 모든 필드 값을 비교하도록 구현한다.


 

728x90
반응형

'개발중 > Java' 카테고리의 다른 글

java outputstream  (0) 2021.07.06
java inputstream  (0) 2021.07.06
동등성과 동일성의 차이점  (2) 2021.06.24
enum 도전 / 성공  (0) 2021.06.16
특정 문자열이 배열안에 존재 하는지 여부/확인  (0) 2021.06.03