우주코딩
Object 클래스와 hashCode() 메서드 본문
Object 클래스와 hashCode() 메서드
- hashCode()
해시코드 = 디지털 지문
데이터를 구분할 때 사용하는 식별번호(정수값)
Date ---- 요약값(Message Digest) ---- 해시값
해시코드 쓰는 이유?
- 데이터 동일 여부 검사 (요약하는 알고리즘)
- 두개의 데이터를 비교할 때 1바이트 씩 순서대로 원본 비교를 하는 것 보다 요약데이터를 갖고 비교해서 비교 속도를 더 빠르게 하기위해 해시 값을 쓴다.
- 원본을 비교하는 것 보다 요약데이터, 즉 해시값을 비교하는 것이 훨씬 시간이 적게 든다.
=> 현실세계도 시간이 중요하다!
ex) 파일공유 사이트에서 같은 파일인지 비교할 때 해시값을 사용한다.
해시값
Data를 특별한 _수학공식_으로 계산하여 만든 작은 정수값
원래 데이터를 요약한 값 = 원래 데이터보다 작다.
서로 다른 데이터가 같은 해시 값을 가질 수 있다. 하지만 그 서로 다른 데이터가 같은 해시값을 가질 확률이 낮다. 낮으면 낮을수록 좋은 공식이 되는 것이다.
해쉬 값(정수값)이 클수록 해쉬 값이 중복될 가능성이 낮아지지만 계산시간은 증가된다.
해시 알고리즘과 계산시간
MD5 -- > 해시값 (시간 ↓ 중복될확률 ↑) - 중복될 확률보다도 시간이 짧은게 더 중요한 경우
SHA -- > 해시값 (시간 ↑ 중복될확률 ↓) - 시간이 오래 걸리더라도 중복 가능성이 낮은것이 더 중요한 경우(보안 관련)
이 뒤에 계속...
'자바 본 강의' 카테고리의 다른 글
String 클래스, 문자열 리터럴, String 클래스와 equals() 메서드, hashCode() 메서드, toString() 메서드, mutable vs immutable (0) | 2021.08.10 |
---|---|
hashCode() 예시와 오버라이딩하기 (0) | 2021.08.10 |
Object 클래스와 equals() 메서드 (0) | 2021.08.09 |
Object 클래스와 toString() 메서드 (0) | 2021.08.09 |
추상 멤버 사용하기 (0) | 2021.08.09 |
Comments