Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

hashCode() 본문

Java/JAVA2

hashCode()

빌드이너프 2023. 6. 25. 16:11

hashCode()

객체의 해쉬코드(hash code)를 반환하는 메서드

 

Object 클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환

native 메서드: OS가 가지고 있는 메서드

내용이 없는 이유는 native 메서드가 이미 작성되어 있기 때문

public class Object {
    ...
    public native int hashCoe(); // 내용이 없다

 

equals()오버라이딩하면, hashCode()도 오버라이딩해야한다

equals()의 결과가 true인 두 객체의 해시코드는 같아야 하기 때문

String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1.equals(str2)); // true
System.out.println(str1.hashCode()); // 96354
System.out.println(str2.hashCode()); // 96354

 

System.identityHashCode(Object obj)는 Object 클래스의 hashCode()와 동일

identityHashCode: 객체마다 다른 해시코드 반환

System.out.println(System.identityHashCode(str1)); // 3526198
System.out.println(System.identityHashCode(str2)); // 7699183