2013-07-16 3 views
0

우리가 예를 들어, 다른 선언문을 사용하여 INT 타입의 3 개 변수를 만들 경우,개체 간의 평등은 어떻게 이루어 집니까?

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

우리가 어떤지를 비교, 우리는 i == kj == k하지만 i==j 얻을.

이 이유는 무엇입니까?

답변

0

k은 원시이며 다른 사용자와 비교할 때 정수 값만 비교합니다. 그러나 나머지 두 개는 개체입니다. == 연산자와 비교할 때 동일한 개체인지 아닌지 만 확인합니다.

Integer 개체를 비교하려면 equals() 메서드를 사용해야합니다. 다음은 프로그램에 true을 반환합니다. i 이후

i.equals(j); 
5

Integer 입력 가지며 k는 식 i == kunboxing 트리거 int 입력 갖는다 : 그것은 i.intValue() == k 동등하다 (심지어 널 있었던 NullPointerExceptioni 경우 상승하게되는 지점). j == k에 대해서도 마찬가지입니다. 그러나 ij 모두 유형이 Integer이므로 자동 청취가 수행되지 않으므로 i == j은 동일한 객체 인 —이 Integer 인 지 단순히 확인합니다.

관련 문제