2013-09-03 2 views
1

나는 "새롭다"라는 목표를 가지고있다. 그러나 toString()을 사용하여 출력 할 때 객체는 Mutation @ 0이라고 말합니다. 그건 나에게 좋지 않은 것 같아. 그게 무슨 뜻 이죠? 부호없는 16 진수 표현을입니다개체의 jvm 주소가 0 일 때의 의미는 무엇입니까?

+0

'0'은 주소가 아닙니다. hashCode()는 주소가 hexi-decimal이기 때문에 유사하게 보이지 않는 주소와 거의 관련이 없습니다. 심지어 Object.hashCode()는 객체가 세대 사이에 이동 되어도 (따라서 다른 메모리 주소를 가지고 있어도) 변경되지 않은 헤더에 저장된 값입니다. –

답변

1

:

@Override public int hashCode() { 
    //TODO: implement this properly! 
    return 0; 
} 

toString()의 기본 구현은 단지이 사실을보고 그 hashCode은 0을 반환했습니다.

+0

돌연변이는 OP 자체의 객체입니다. 내가 틀렸다면, 해당 API 링크를 첨부 할 수 있습니까? –

+0

@ sᴜʀᴇsʜᴀᴛᴛᴀ 네, 저는 그것을 자신의 수업이라고 생각합니다. 내 대답의 요점은 문제의 근원을 가리키고 있습니다. –

+0

+1. 아 ...이 소스 코드 용어는 나를 미치게하고 즉시 API를보고 싶다. –

3

As per Docs of toString() method in Object class

Object 클래스의 toString 메소드는 객체가 인스턴스가, 상기 서명 문자 '로되어있는 클래스의 이름으로 구성된 문자열을 반환 @ ', 및 객체의 해시 코드의 부호 없음 16 진수 표현. 즉,이 메서드는 다음과 같은 문자열을 반환합니다.

의미가 아직 계산되지 않은 Hashcode 의미에서 zero입니다.

Source Code:

당신이 좋은 기회가 당신이 거기에이를 찾을 수있다, Mutation의 소스 코드를 보면
public String toString() { 
237  return getClass().getName() + "@" + Integer.toHexString(hashCode()); 
238 } 
관련 문제