본문 바로가기

JAVA

[JAVA] int와 Integer 값 비교, 그리고 128

 알고리즘 코딩 중에 래퍼클래스(Integer)는 == 나 != 로 비교할 수 없다는걸 까먹고 실수를 했다.

주석코드 : 수정 후

주석없는 코드 : 수정 전

-> 비교하는 값 중 하나만 int로 설정해줘도 알아서 int로 비교한다. 위와 같이 수정하면서 해결했고, 그 과정에서 이상한 점이 발견됐다.

저 실수대로라면 모든 Integer 값을 다르다고 봐야 하는데 100 언저리의 숫자 까지는 같은 값은 같은 값으로 연산이 되었다. 확인 결과 java에서 IntegerCash.low와 IntegerCash.high를 두고 그 사이 값은 다른 로직으로 처리되는 것이 보였다. IntegerCash.low 는 -128이고 IntegerCash.high는 127이다.