Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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 31
Archives
Today
Total
관리 메뉴

coyojo10의 개발블로그!

자바의 정석- hashCode(), toString( ) 본문

백엔드

자바의 정석- hashCode(), toString( )

coyojo 2023. 2. 9. 16:09

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

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

-  객체마다 다른 값을 반환한다.

 

public class Object  {  
           public  native  int  hashCode ( ) ;   
            // native는 OS의 메서드 C언어로 작성되어있음 (이미 작성되어있는 메서드)
             ====>> 즉 이미 작성되어 있는 메서드를 호출하는 것 
             ====> 이렇게 선언 해 놓으면  C 언어로 된 것을  java에서 쓸 수 있음

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

   ---> 둘다 객체의 주소를 가지고 작업하기 때문이다

-  equals()의 결과가 true인 두 객체의 해시코드는 같아햐 하기 때문이다.

 

 

< 오버라이딩으로 주소가 아닌 iv의 값을 비교하는 예제>   

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

 

 

 

- toString()  : 객체를 문자열 (String) 으로 변환하기 위한 메서드

      public String toString( ) {  // Object 클래스의 toString( )
             return getClass( ).getName( ) + "@" + Integer.toHexString(hashCode( ) ) ;
                        -------------      ----------       ----                    -----------      ------------
                       설계도 객체   클래스이름   위치                 16진수         객체주소