Primitive Type 기본형 타입
- 변수에 값 자체를 저장한다. stack영역에 생성된다.
- 사용하기 전에 반드시 선언되어야 한다.
- 초기화를 하지 않으면 자료형에 맞는 기본 값이 들어간다.
- OS에 따라 자료의 길이가 변하지 않는다.
- 비객체 타입이다. null을 가질 수 없다.
- 정수
byte
,short
,int
,long
- 실수
double
,float
- 문자
char
- 논리
boolean
Reference Type 참조형 타입
- 기본형을 제외한 것을 참조형이라고 한다.
- 메모리 상에서 객체가 존재하는 주소를 저장한다. heap영역에 저장한다.
- 클래스형, 인터페이스형, 배열형이 있다.
Wrapper Class란 무엇이고 Primitive Type과의 차이는 무엇인가요?
Wrapper Class
- 기본형 타입 -> 객체 타입의 자료형으로 변환이 필요할 때 주로 사용
용도
- 객체로 저장해야할 때
- 매개변수로 객체가 들어가야 하는 경우(제네릭, Collection의 타입 등) -> 제네릭이나 컬렉션에서 사용할 경우 기본형을 쓸 수 없기 때문에 wrapping한 형태로 사용해야 한다.
- 객체 간의 비교가 필요한 경우
특징
- 산술 연산을 위한 클래스가 아니기 때문에 불변
Immutable
하다. -> 값에 대한 변경 불가. 새로운 값 할당이나 참조만 가능하다.
박싱 Boxing / 언박싱 UnBoxing
- Boxing : 기본자료형을 Wrapper Class로 만드는 것
- UnBoxing: 반대로 Wrapper Class -> 기본 자료형 (ex. intValue())
코드 예시
- 문자를 int로 바꿀 때 :
int num = Integer.parseInt("500");
- 문자를 Integer로 바꿀 때 :
int num = Integer.valueOf("500");