본문 바로가기
Java

자바 해시코드 / java hashcode

by 자유코딩 2017. 9. 18.

자바 hashCode에 대해서 알아보겠습니다.

hashCode는 주소와는 다른 개념이지만 객체에 고유한 번호를 부여합니다.

 

 

코드를 보시면

 

Person p1 = new Person();

Person p2 = new Person();

Person p3 = new Person();

 

코드를 통해서 3개의 p1,p2,p3 객체를 생성하고 있습니다.

사진에서는 .hashCode 메소드를 사용해서 p1,p2,p3에게 부여된 hashCode를 출력하고 있습니다.

 

 

hashCode가 정의되어 있는 Object 클래스를 보겠습니다.

 

 

Object 클래스 안에는 hashCode가 이렇게 정의되어 있습니다.

C또는 C++에서 만들어지고 자바에서 구동되기 때문에 native 키워드가 사용되었습니다.

 

 

Person 클래스에 작성된 코드의 일부입니다.

코드를 보시면 Object 클래스에 정의된 hashCode를 오버라이딩 하고 있습니다.

Person 객체가 생성되고 있는 TestDrive 클래스에서 hashCode 함수를 사용하게 되면 결과 값이 달라집니다.

아래 코드를 보겠습니다.

 

p1객체와 p3객체에는 매개변수가 같은 값들이 전달 됩니다.

p2에는 매개변수가 p1, p3와는 다른 값들이 전달 됩니다.

 

이렇게 되면 조금 전에 오버라이딩을 했기 때문에 p1.hashCode의 값과 p3.hashCode의 값이 같아집니다.

 

 

 

설명이 부족한 부분은 없으셨나요? 댓글이나 이메일로 질문해주시면 답변 드리겠습니다. 감사합니다.

 

이메일 : forsqna@gmail.com

 

댓글