충분히 쌓여가는
hashCode() 본문
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
'Java > JAVA2' 카테고리의 다른 글
Object 클래스와 equals(), equals(Object obj)의 오버라이딩 (0) | 2023.06.25 |
---|---|
toString(), toString()의 오버라이딩 (0) | 2023.06.25 |
연결된 예외(chained exception) (0) | 2023.06.25 |
사용자 정의 예외 만들기, 예외 되던지기 (0) | 2023.06.24 |
checked 예외, unchecked 예외 (0) | 2023.06.22 |