Object 클래스의 toString (), equals (),hashCode () 방법 사이의 관계

1289 단어
1, 다시 쓰기 전에: (1) tostring () 방법은 대상을 되돌려줍니다: Object 클래스의 tostring 방법은 클래스 이름 (대상은 클래스의 실례),at 태그 '@' 와 이 대상 해시 코드의 무기호 16진수 표로 구성된 문자열을 되돌려줍니다.다시 말하면, 이 방법은 문자열을 되돌려줍니다. 그 값은 getClass () 입니다.getName() + ‘@’ + Integer.toHexString(hashCode()): com.itheima.hah.Dog@2260e277(2) equals (): 비공식 인용 값 x와 y에 대해 x와 y가 같은 대상을 인용할 때만 이 방법은true(x=y가 값true를 가진) 복제된 대상과 원래의 대상이 같은 대상이 아니다.대상 주소가 다르다(3)hashCode(): Object 클래스에서 정의한hashCode 방법은 서로 다른 대상에 대해 서로 다른 정수를 되돌려줍니다.(이것은 일반적으로 이 대상의 내부 주소를 하나의 정수로 바꾸어 실현하는 것이다).2. 다시 쓴 후: (1) tostring () 방법은 일반적으로 속성의 결합 @Override public String tostring () {//TODO Auto-generated method stub return "Person2 [name="+name+",age="+age+"]"]를 반환합니다.(2)equals() 방법: 다시 쓴 후에 일반적으로 두 대상의 모든 속성 값이 같으면true로 되돌려줍니다.(3)hasdCode():hashCode를 다시 쓰기, @Override public int hashCode() {final int PRIME = 31; int result = 1;result = PRIME * result + getId(), return result;1) 객체가 동일하면 hashCode가 동일합니다.
 2) hashCode 。 hashCode( ( )) 

 :

다시 쓰지 않으면 hashCode가 같지 않으면 두 대상이 반드시 같지 않다. 다시 쓰면 우선hashCode가 다르면 두 대상이 같지 않다고 판단하고 hashCode가 같으면 equals를 비교한다. 만약true가 같지 않으면 같지 않다.
finalize (): 쓰레기 수거기가 이 대상에 대한 더 많은 인용이 존재하지 않는다고 확인되면 대상의 쓰레기 수거기에서 이 방법을 호출합니다.시스템 자원을 설정하거나 다른 제거를 실행하기 위해finalize 방법을 다시 씁니다.수동 쓰레기 수거다.

좋은 웹페이지 즐겨찾기