자바의 자료형은 크게 Primitive Type과 Reference Type으로 나눌 수 있다.
Primitive Type (기본형 타입)
char, int, long, float, double, boolean 등
비객체 타입이다. 따라서 null 값을 가질 수 없다.
만약 Primitive type에 Null을 넣고 싶다면 Wrapper Class를 활용한다.스택(Stack) 메모리에 저장된다.
Reference Type (참조형 타입)
클래스 타입(class type) , 인터페이스 타입(interface type) , 배열 타입(array type) , 열거 타입(enum type)
JAVA에서 Primitive type을 제외한 타입들이 모두 Reference type
new로 인하여 생성하는 것들은 메모리 영역인 Heap 영역에 생성을 하게되고, Garbage Collector가 돌면서 메모리를 해제
빈 객체를 의미하는 Null이 존재
String 은 “Happy Java”와 같이 리터럴로 표기가 가능하지만 primitive 자료형은 아니다.
String은 리터럴 표현식을 사용할 수 있도록 자바에서 특별 대우 해 주는 자료형이다.
참조형에 속하지만 기본적인 사용은 기본형 처럼 사용한다.
리터럴 표기
리터럴이란? 변수의 값이 변하지 않는 데이터(메모리 위치안의 값)를 의미
→ 객체 생성없이 고정된 값을 그대로 대입하는 방법
1
2
3
String a = "Dal";
String b = "a";
String c = "123";
primitive 자료형은 new
키워드로 그 값을 생성할 수 없다.
primitive 자료형은 다음과 같이 리터럴(literal)로만 값을 세팅할 수 있다.
1
2
3
boolean result = true;
char item = 'S';
int num = 10;
이러한 primitive type 등을 객체로 만들어서 사용해야 하는 경우가 프로그래밍을 하다 보면 종종 존재하는데
이럴 때 사용하는것이 Wrapper class 라고 한다.
Wrap 말그대로 포장한다는 느낌의 클래스이다.
Primitive type의 변수들을 포장하는 것으로 Character, Integer, Long, Float, Double, Boolean 등이 있다.
원시자료형 | Wrapper 클래스 |
---|---|
int | Integer |
long | Long |
double | Double |
float | Float |
boolean | Boolean |
char | Char |
출처
3. 9 Reference Type vs Primitive Type
03-04 문자열 (String)
Primitive type & Reference type