정수형 -> 문자형으로 변경.
String.valueOf(n)문자형 -> 정수형으로 변경.
Integer.valueOf(n)Integer.parseInt(s)-> 후자가 더 자연스러움
Integer.parseInt(s)는 기본형 int를 바로 반환하고 Integer.valueOf(s)는 객체인 Intger를 바로 반환.
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()를 쓰는 습관을 들이는 게 좋다.