반응형
Notice
Recent Posts
Recent Comments
Link
뜌릅
📌 두 객체가 동일한 hashCode를 가지면 Equals()가 참이어야 합니다, 그렇죠? (Kotlin) 본문
SPRING/주니어 자바 개발자를 위한 100가지 질문
📌 두 객체가 동일한 hashCode를 가지면 Equals()가 참이어야 합니다, 그렇죠? (Kotlin)
TwoCastle9 2023. 6. 25. 20:06반응형
https://careerly.co.kr/comments/83898
조서희 / 주니어 자바 개발자를 위한 100가지 질문 1 | 커리어리
"주니어 자바 개발자를 위한 100가지 질문" 1편입니다. 주니어 자바 개발자를 위한 100가지 질문 (2)...
careerly.co.kr
자바에서는 어떤지 잘 모르겠다.(아마 비슷할거라고 생각은 한다.)
그러면 코틀린에서 HashCode는 무엇일까? HashCode는 Data Class의 클래스 Body에서 아래의 사진처럼 override가 가능하게 되어있다.
그렇다면 hashCode는 무엇일까? 아래는 코틀린 정식 문서이다.
요약을 하자면 아래와 같다.
- 같은 Object에서 호출되는 hashCode()함수는 equals 함수에서 사용되는 정보들이 수정되지 않는 한, 언제나 같은 값을 뱉어야 한다.
- equals() 함수에서 두 객체가 같다면, hashCode() 메소드의 값도 같아야 한다.
그렇다면 hashCode의 값이 참이면 equals의 값이 true인가? 아니다 그렇지는 않다. 문서는 equals가 참인경우 hashCode의 값이 같다는 것을 말하지 반대가 참이라고는 하지 않았다.
어떤경우에 Hash의 값이 같은데 equals의 값이 다를까? 그경우는 Hash Colision과 같은 상황을 말한다..
결론적으로 말하면, Hash Code는 객체를 식별할수 있는 값을 반환하는것이다.
반응형
'SPRING > 주니어 자바 개발자를 위한 100가지 질문' 카테고리의 다른 글
📌 == 와 equals의 차이점은 무엇입니까? (0) | 2023.06.22 |
---|---|
📌 JDK와 JRE의 차이점은 무엇입니까? (0) | 2023.06.21 |