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를 사용해서 개발하면 될 것 같다.