자바는 객체 지향 언어이다. 그런데 자바 안에 객체가 아닌 것이 있다. 바로 int, double
같은 기본형(Primitive Type
)이다.
기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다.
null
값을 가질 수 없음 : 기본형 데이터 타입은 null
값을 가질 수 없다. 때로는 데이터가 없음
이라는 상태를 나타내야 할 필요가 있는데, 기본형은 항상 값을 가지기 때문에 이런 표현을 할 수 없다.기본형은 항상 값이 존재해야 한다. 숫자의 경우 0, 1
같은 값이라도 항상 존재해야 한다. 반면에 객체인 참조형은 값이 없다는 null
을 사용할 수 있다. 물론 null
값을 반환하는 경우 잘못하면 NullPointerException
이 발생할 수 있기 때문에 주의해서 사용해야 한다.
래퍼 클래스는 기본형의 객체 버전이다.
자바는 기본형에 대응하는 래퍼 클래스를 기본으로 제공한다.
byte
-> Byte
short
-> Short
int
-> Integer
long
-> Long
float
-> Float
double
-> Double
char
-> Character
boolean
-> Boolean
equals
로 비교해야 한다.