아래의 글은 조슈아 블로크 저/개앞맵시 역, 『이펙티브 자바 Effective Java 3/E
』, 인사이트(2018), 7-13 쪽의 내용을 기반으로 작성하였습니다.

 

equals가 뭐지?

 

잘 모르면 무턱대고 정의하지는 마라, Object클래스의 equals를 그대로 사용하라

왜냐하면 

정의하지 않고 그대로 사용하면 ? 현재 구현체는 동일한 객체는 자기 자신만 같게 됨.

 

동일/동등 이라고도 하고

식별성 논리적 동치성이라도 하고

identity와 equity 이 차이 ( 인터뷰 기초 문제이지도 하지요 ㅎㅎ)

identity : 물리적으로 같은 객체인가?

equals : 같은 값인가?

 

일반 규약은 뭐지? > equals 메서드를 재정의 할때는 일반 규칙을 따라야함.

반사성 : reflexivity : x.equals(x) = true

대칭성 : symmetry : x.equals(y) == true 이면 y.equals(x) == true이다

추이성 : transitivity : x.equals(y) == true 이고 y.equals(z) == true 이면 x.equals(z) == true 이다

일관성 : consistency : x.equals(y) 반복호출시 항상 일관된 값

null아님 : x.equals(null) 은 false 이다

 

왜 지켜야하지? > 그러니 잘못 만들면 side-effect가 발생함. 즉, equals를 많은 곳에서 사용하고 있음.

사용하는 곳, collection class, 객체 비교, serialization, 

 

참고 사이트 :

dzone.com/articles/identity-vs-equality-in-java

 

Identity Vs. Equality in Java - DZone Java

In this post, we take a quick look at identity and equality in Java, what they are, and how they compare to one another.

dzone.com

www.nextree.co.kr/p11101/

 

헷갈리기 쉬운 “동등비교” 와 “정렬”

입사하여 처음으로 참여하게 된 프로젝트는 보험회사 직원들의 업무 관리 프로그램을 구축하는 것이었습니다. 자바로 개발하는 프로젝트는 처음이여서 어떻게 구현해야하는지에 대한 걱정이 �

www.nextree.co.kr

d2.naver.com/helloworld/831311

www.gisdeveloper.co.kr/?p=5332

 

Java에서 HashMap을 위한 Custom Key 정의하기 – GIS Developer

Java의 HashMap 자료구조는 고유한 값인 Key와 1:1로 연관되는 값(Value)을 하나의 쌍(Pair)로 하여 여러 개의 쌍을 저장하는 자료구조입니다. 흔히 Key 값으로 문자열이나 정수값을 사용하는 것으로도 충

www.gisdeveloper.co.kr

vandbt.tistory.com/41

 

리스코프 치환 원칙 - Liskov Substitution Principle for Primer

리스코프 치환 원칙 LSP Liskov Substitution Principle 은 객체-디자인의 S.O.L.I.D 5원칙 중의 가장 이해하기 어려운 원칙이라고 할 수 있습니다. 다른 원칙들은 이름에서 힌트를 얻을 수 있는데 LSP만은 이�

vandbt.tistory.com

 

+ Recent posts