coyojo10의 개발블로그!
자바의 정석- hashCode(), toString( ) 본문
- 객체의 해시코드(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진수 객체주소
'백엔드' 카테고리의 다른 글
HTTP요청과 응답 , 클라이언트와 서버 - spring (0) | 2023.02.20 |
---|---|
자바의 정석 - String 클래스 (0) | 2023.02.10 |
[자바 ] 자바의 정석 공부 - 자료구조파트 (0) | 2023.01.30 |
STS 웹 브라우저 external로 설정하기 (0) | 2023.01.22 |
[스프링] 정리 (0) | 2022.12.26 |