2013-06-22 2 views
-2
If I have two reference object with different name in main class Such as: 

AA aa = new AA(); 
AA bb = new AA(); 

and if i compare it using aa.equals(bb); then what it will return. 

and if i will use 

BB bb = new BB(); 

and i compare it using aa.equals(bb); 

Then what is difference both of them 

나는 항상 객체의 null 동작을 혼동했다.object.equals 메소드와 == java의 차이점

+3

SO 에서이 같은 많은 질문이 있습니다, 사실이다 http://stackoverflow.com/questions/1643067/whats-the-difference-between-equals-and –

답변

3

연산자 ==는 두 개의 객체 참조 변수가 객체의 동일한 인스턴스를 참조하는지 테스트합니다.

.equals() 메서드는 서로 비교되는 두 개체가 동일한 지 여부를 테스트하지만 같은 개체의 인스턴스가 정확히 같을 필요는 없습니다.

예시 1 : 상기 코드

Integer i = new Integer(10); 
Integer j = i; 

. i == j은 모두 ij이 같은 개체를 나타 내기 때문에 참입니다.

예 2 : 그들은 모두 10의 값을 갖지만, 그들은 다른 두 물체가 때문에 위의 코드에서

Integer i = new Integer(10); 
Integer j = new Integer(10); 

, i == j 거짓이다. 그들은 두 개의 서로 다른 개체가 있지만, 그들은 같은 수를 나타냅니다 있다는 사실에 해당하기 때문에

또한, 위의 코드에서, i.equals(j)은 (10)가

관련 문제