나는이 게시물을 부정적이고 양의 0으로 읽었습니다 .
제공해야합니다 나의 이해 다음 코드 true
와 true
A 출력 등.
그러나 결과를 제공 false
하고 true
있습니다.
음수 0을 양수 0과 비교하고 있습니다.
public class Test {
public static void main(String[] args) {
float f = 0;
float f2 = -f;
Float F = new Float(f);
Float F1 = new Float(f2);
System.out.println(F1.equals(F));
int i = 0;
int i2 = -i;
Integer I = new Integer(i);
Integer I1 = new Integer(i2);
System.out.println(I1.equals(I));
}
}
0 Integer
과에 대해 다른 동작을하는 이유는 무엇 Float
입니까?
i
와 i2
정확히 동일합니다. 그런 다음 새로운을 만들 때 Integer
둘 다 정확히 동일한 값을 감 쌉니다. I1.equals(I)
사실입니다.
int i = Integer.MIN_VALUE, i2 = -i;
...
new
여기에는 래퍼 유형 에 사용할 이유가 없습니다 . 그냥 사용 예Integer i = 0, i2 = -i; System.out.println(i.equals(i2)); Float f1 = 0f, f2 = -f1; System.out.println(f1.equals(f2));