[TIL]2026.09.23

ddee·2026년 9월 23일

정수형 -> 문자형으로 변경.

  • String.valueOf(n)

문자형 -> 정수형으로 변경.

  • Integer.valueOf(n)
  • Integer.parseInt(s)

-> 후자가 더 자연스러움
Integer.parseInt(s)는 기본형 int를 바로 반환하고 Integer.valueOf(s)는 객체인 Intger를 바로 반환.

int vs Integer

int는 기본형(primary type)이고, Integer는 int를 감싼 객체(wrapper class)

값 vs 객체
int는 숫자 값 자체를 바로 저장. Integer는 숫자를 담은 객체를 만들고, 변수는 그 객체를 가리킨다. 그래서 int가 더 가볍고 빠르다.

int에는 null을 넣을 수 없어서 기본값이 0이다.

ArrayList,HasgMap같은 컬렉션은 객체만 담을 수 있어서 Integer를 써야한다.

주의할 점:==비교
Integer끼리 ==로 비교하면 값이 아니라 같은 객체인지를 비교한다. -128~127 범위는 Java가 객체를 재사용해서 우연히 맞게 나오지만, 그 밖에서는 틀릴 수 있다.

Integer a = 1000, b = 1000;
System.out.println(a == b);       // false (다른 객체)
System.out.println(a.equals(b));  // true  (값 비교)

null인 Integer를 int를 쓰고, 컬렉션에 넣거나 null이 필요할 때 Integer를 쓰면 된다. Integer끼리 비교할 때는 == 대신 equals()를 쓰는 습관을 들이는 게 좋다.

0개의 댓글