java의 오브젝트 참조와 오브젝트의 해시 코드 값의 차이는 무엇입니까?오브젝트 참조와 오브젝트 해시 코드의 차이점
답변
완전히 다른 두 가지 개념입니다. 위의 예에서
Cat oldCat = new Cat();
Cat newCat = new Cat();
Cat oldCatRef = oldCat;
,
oldCatRef
oldCat
과 동일한 개체에 대한 참조이다. 그들은 같은 객체를 참조하기 때문에 해시 코드는 동일합니다.
그러나 oldCat
과 newCat
은 같은 개체를 참조하지 않습니다. 두 개의 다른 객체에 대한 참조입니다. 그러나 구현에 따라 동일한 hashCode
을 가질 수 있습니다. hashCode
은 단순히 당신이 오버라이드 할 수있는 Object
클래스의 메소드 일뿐입니다. (PeterJ)에서
EDIT 다음 JavaSE6 객체 사양에 따르면 는 oldCat.equals (newCat)는 다음 두 가지의 해시는 동일 할 필요가있는 경우. 그것은 좋은 프로그래밍이 그 계약에 의해 순종의
당신은 아마뿐만 아니라이 질문에 대한 답변을 확인하려면 : 객체의 해시 코드 참조 또는 주소 사이
difference between hash code and reference or address of an object?
개체에 대한 참조는 바로 그 것입니다. Object에 대한 참조입니다.
개체의 해시 코드는 구현에 따라 다양 할 수있는 hashCode()
메서드의 결과입니다. 기본 hashCode()
:
는
64 비트 JVM에서 참조는 일반적으로 8 바이트를 사용하고 hashCode()는 32 비트 만 사용합니다. –
두 개의 서로 다른 객체가 같은 hashCode
을 가질 수 있습니다 일반적으로 정수로 오브젝트의 내부 주소를 변환하는 형태로 구현됩니다 만, 그러한 구현 테크닉은의 JavaTM 프로그램 언어에서는 불필요 . reference
은 hashCode
이 편리한 계산 된 특성 인 개체에 대한 고유 한 포인터입니다.
- 1. 오브젝트 내부의 오브젝트
- 2. 오브젝트
- 3. 오브젝트 배열을 통한 오브젝트 액세스
- 4. JSON-ception - 오브젝트 내부의 오브젝트
- 5. 오브젝트 대 오브젝트 맵핑 유틸리티
- 6. 오브젝트 데이터를 오브젝트 데이터와 분리
- 7. 오브젝트 또는 오브젝트 속성 전달
- 8. Java의 다중 스레드 오브젝트 → 오브젝트 캐시 맵?
- 9. 3 세대 오브젝트와 대형 오브젝트 힙의 차이점
- 10. 프로토 타입의 해시 인 캐스팅 오브젝트
- 11. 오브젝트 라이브러리의 코어 데이터 엔티티 오브젝트
- 12. 오브젝트 마스킹하기
- 13. 비즈니스 오브젝트
- 14. 오브젝트 구성
- 15. 오브젝트 검색
- 16. 동적 오브젝트 생성
- 17. 오브젝트 A는 오브젝트 A를 공용 속성 - 불량 디자인으로 갖는 오브젝트 B에 대한 참조를 가지고 있습니까?
- 18. 오라클 데이터베이스에있는 모든 db 오브젝트 소스 코드의 문자열을 검색하고 바꿉니다.
- 19. Objective-C 오브젝트 인스턴스 선언의 별표 : 오브젝트 또는 인스턴스 별?
- 20. 오브젝트 테이블의 오브젝트 유형 이름을 아는 방법은 무엇입니까? (Oracle)
- 21. 오브젝트 맵퍼 용 PostSharp
- 22. 3D 메시 오브젝트 렌더링
- 23. PHP 오브젝트 테스트
- 24. Flex 리모트 오브젝트 압축
- 25. 오브젝트 노드리스트 란 무엇입니까
- 26. 두 개의 오브젝트 커버
- 27. GLSL 오브젝트 백열
- 28. 오브젝트 용 루프?
- 29. 오브젝트 유형에서 상속하는 이유
- 30. 액티브 오브젝트 평등
[차이점은 무엇입니까? ] (http://stackoverflow.com/questions/3700595/difference-between-hash-code-and-reference-or-address-of-an-object) 원래 Java ME를 요청했지만 . –