인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
Language/Java (JVM)

☕ 자바 객체의 hashCode는 고유하지 않다 ❌

객체의 hashCode는 고유하지 않다 자바에서는 포인터를 철저히 숨겼기 때문에 직접적인 객체의 주소 원래값을 얻을수는 없다. 그래서 자바에서는 참조 변수의 주소값을 표현하기 위해 위와 같이 해시코드를 이용한다. 보통 해싱 알고리즘 상 서로 다른 두 주소값을 가지고 있는 객체는 결코 같은 해시코드를 가질 수 없다. 하지만 예외가 있는데, 바로 hashCode() 메서드가 int형 정수를 반환한다는 점이다. 만일 자신의 컴퓨터가 32bit 사양이라면 이는 문제가 되지 않는다. 하지만 현대 시대에서 대부분 사용하는 64비트 컴퓨터에서 돌아가는 JVM(가상머신)은 기본적으로 8바이트(64bit) 주소체계를 기본으로 하는데, 만일 8바이트의 주소값을 hashCode를 이용해 반환하면 메서드의 타입에 따라 4바이..

category_image
인파_
2022.11.16
(0)