Wrapper class 와 Primitive Data Type 의 차이점에 대한 궁금증은 int 와 Integer 에서 부터 출발한다. int 를 두고 굳이 Integer 를 사용하는 이유가 무엇인지 의문이 생기기 때문이다.
Wrapper Class 는 Primitive Data Type 을 객체화 시킨 것이다. int 를 Integer 로 객체화시킨 것 처럼 말이다. 원시타입을 굳이 객체화를 시키는 이유는 사용 용도 때문이다.
두 값을 비교하기 위해 ==
이 아닌 equals()
를 사용하는 이유도 Wrapper 클래스는 객체이기 떄문이다.
Primitive type을 객체로 만들어 사용하면 null 을 넣거나 메소드를 사용할 수도 있고 제네릭의 타입 인자로 이용할 수도 있다.
int num = 1;
Integer wrapper = new Integer(num);
Integer wrapper = new Integer(30);
int num = wrapper.intValue();