우리가 예를 들어, 다른 선언문을 사용하여 INT 타입의 3 개 변수를 만들 경우,개체 간의 평등은 어떻게 이루어 집니까?
Integer i = 10;
Integer j = new Integer(10);
int k = 10;
우리가 어떤지를 비교, 우리는 i == k
및 j == k
하지만 i==j
얻을.
이 이유는 무엇입니까?
우리가 예를 들어, 다른 선언문을 사용하여 INT 타입의 3 개 변수를 만들 경우,개체 간의 평등은 어떻게 이루어 집니까?
Integer i = 10;
Integer j = new Integer(10);
int k = 10;
우리가 어떤지를 비교, 우리는 i == k
및 j == k
하지만 i==j
얻을.
이 이유는 무엇입니까?
k
은 원시이며 다른 사용자와 비교할 때 정수 값만 비교합니다. 그러나 나머지 두 개는 개체입니다. ==
연산자와 비교할 때 동일한 개체인지 아닌지 만 확인합니다.
Integer
개체를 비교하려면 equals()
메서드를 사용해야합니다. 다음은 프로그램에 true
을 반환합니다. i
이후
i.equals(j);
는 Integer
입력 가지며 k
는 식 i == k
가 unboxing 트리거 int
입력 갖는다 : 그것은 i.intValue() == k
동등하다 (심지어 널 있었던 NullPointerException
i
경우 상승하게되는 지점). j == k
에 대해서도 마찬가지입니다. 그러나 i
과 j
모두 유형이 Integer
이므로 자동 청취가 수행되지 않으므로 i == j
은 동일한 객체 인 —이 Integer
인 지 단순히 확인합니다.