Java 개체의 해시 코드는 다음 공식으로 생성됩니다. h = (h
Java에서 생성된 객체의 해시 코드는 어떻게 되나요?
해시 코드는 Java 객체 내부에 저장된 int 값으로 객체를 빠르게 식별하고 찾는 데 사용됩니다. 이는 다음 공식에 의해 생성됩니다:
hashCode = (h << 5) - h + x
여기서:
기본 유형의 경우 해시 코드는 다음과 같이 객체에 직접 저장됩니다.
int i = 10; System.out.println(i.hashCode()); // 输出:10
참조 유형의 경우 해시 코드는 해시 코드를 기반으로 생성됩니다.
hashCode = (hashcode1 * 31) + (hashcode2 * 31) + ... + (hashcodeN * 31)
31은 해시 충돌을 줄이는 데 도움이 되는 "매직 넘버"라고 불리는 소수입니다.
실용 사례
다음 Person
클래스를 고려하세요. Person
类:
class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public int hashCode() { int hash = 0; if (name != null) { hash += name.hashCode() * 31; } hash += age * 31; return hash; } }
此类覆盖了 hashCode()
方法以生成定制的哈希码,根据 name
和 age
属性哈希码计算。
Person p1 = new Person("John", 25); Person p2 = new Person("John", 25); System.out.println(p1.hashCode() == p2.hashCode()); // 输出:true
在上面的案例中,尽管 p1
和 p2
rrreee
hashCode()
메서드를 재정의하여 에 따라 사용자 정의 해시 코드를 생성합니다. > 이름
및 age
속성 해시 코드 계산. 🎜rrreee🎜위의 경우 p1
과 p2
는 서로 다른 객체이지만 동일한 속성을 가지고 있기 때문에 해시 코드는 동일합니다. 🎜위 내용은 Java에서 객체의 해시 코드는 어떻게 생성됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!