Java에서 자주 사용하는 int와 Integer. 아무생각 없이 맨날 사용했던 것이 int와 Intger이었는데 문득 둘의 차이가 궁금해졌고 알아보기로 했다.
데이터의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이 자료형(data type) 이다.
자료형(data type) 은 크게 기본형(primitive type) 과 참조형(refernce type) 으로 나눌 수 있는데 기본형 변수는 실제 data를 저장하는 반면 참조형 변수는 data의 주소를 값으로 갖는다. 기본형에는 모두 8개의 자료형이 있으며 논리형, 문자형, 정수형, 실수형으로 구분된다.
| 분류 | 타입 |
|---|---|
| 논리형 | boolean |
| 문자형 | char |
| 정수형 | byte, short, int, long |
| 실수형 | float, double |
기본형 타입은 객체로 다루지 않기 때문에 보다 높은 성능을 얻을 수 있다. 그렇지만 기본형 변수를 객체로 다뤄야 하는 경우가 있다. 이 때 사용되는 것이 래퍼 클래스(wrapper class) 이다. 8개의 기본형 타입을 대표하는 8개의 래퍼 클래스가 있다.
| 기본형 | 래퍼클래스 |
|---|---|
| boolean | Boolean |
| char | Character |
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
Spring에서 엔티티를 정의할 때 Integer를 주로 썼었는데 이는 null 값 처리가 가능한 래퍼 클래스의 특징 때문이었다. 엔티티 정의 뿐만 아니라 파라미터로 null 값을 받을 수 있는 경우에는 Integer를 사용해서 개발하면 될 것 같다.