>Java >java지도 시간 >자바의 해시 값은 무엇입니까

자바의 해시 값은 무엇입니까

little bottle
little bottle원래의
2019-05-21 17:27:5811284검색

자바의 해시 값은 무엇입니까

해시 값(해시코드)은 고유한 인코딩, 요약 값 등으로 이해될 수 있습니다. 구체적인 구현은 Java에서 두 변수가 실제로 동일한 객체인지 식별하는 데 사용할 수 있는 메모리 주소일 수 있습니다. 동일한 객체에 대해서는 이때의 값이 동일해야 하지만, 서로 다른 객체도 동일한 값을 가질 수 있습니다. 이에 대해 더 자세히 알아보겠습니다.

다른 클래스의 해시 값(해시코드):

1. 객체 클래스의 HashCode: 객체의 메모리 주소의 처리된 구조를 반환합니다. 각 객체의 메모리 주소가 다르기 때문에 해시 코드도 다릅니다. 같은.

두 개체가 완전히 상대적이려면 동일한 해시 값을 가져야 합니다. 동등()과 비교

PS1: 모든 클래스는 Object 클래스의 간접적인 하위 클래스이므로 public int hashCode() 메서드를 상속합니다. 이 메서드에서 반환되는 값은 일반적으로 개체의 내부 주소를 변환하여 얻습니다. 정수. 이렇게 하면 각 개체의 해시 코드 값이 다릅니다

PS2: 여기서 주소는 실제 물리적 메모리 주소가 아닌 JVM에서 가상화한 메모리 주소를 나타냅니다.

PS3: 해시 값과 주소 값은 해시 알고리즘을 통해 해싱되어 얻어지는 반면, 주소 값은 물리적 수준과 관련되어 있으며 시스템에 의해 할당됩니다. 해시 값은 강제 수단을 통해 동일하게 설정될 수 있습니다. 즉, 해시 값은 논리적 고유성을 보장하는 반면 주소 값은 물리적 고유성을 보장합니다.

2. String 클래스의 HashCode: String 클래스에 포함된 문자열의 내용을 기반으로 특수 알고리즘에 따라 해시 코드가 반환됩니다. 문자열 내용이 동일하면 반환되는 해시 코드도 마찬가지입니다. 동일합니다.

문자열 내용이 같은지 비교합니다. equal()

3을 사용하세요. 정수 클래스 hashCode: 반환된 해시 코드는 Integer 개체에 포함된 정수 값입니다.

예를 들어 Integer i1=new Integer(100)이면 i1.hashCode의 값은 100입니다.

동일한 크기의 두 Integer 객체가 동일한 해시 코드를 반환하는 것을 볼 수 있습니다.

묶음 숫자 유형이 동일한지 비교하세요. 같음()을 사용하세요

위 내용은 자바의 해시 값은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.