Primitive Type 기본형 타입
타입 | 메모리 크기 | 기본값 | 표현범위 | |
---|---|---|---|---|
논리형 | boolean | 1 byte | false | true, false |
정수형 | byte | 1 byte | 0 | -128 ~ 127 |
정수형 | short | 2 byte | 0 | -32,768 ~ 32,767 |
정수형 | int | 4 byte | 0 | -2,147,483,648 ~ 2,147,483,647 |
정수형 | long | 8 byte | 0L | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
실수형 | float | 4 byte | 0.0F | ≒ (3.4 X 10-38) ~ (3.4 X 1038) |
실수형 | double | 8 byte | 0.0 | ≒ (1.7 X 10-308) ~ (1.7 X 10308) |
문자형 | char | 2 byte | '\u0000' | 0 ~ 65,535 |
Primitive Type 변수들은 그냥 일반 변수이다. stack영역에 저장되며 사용이 종료되면 삭제된다.
Reference Type 참조형 타입
타입 | 기본값 | 할당되는 메모리 크기 | |
---|---|---|---|
배열형 | Array | Null | 객체의 주소값을 저장할 4byte |
열거형 | Enumeration | Null | 객체의 주소값을 저장할 4byte |
객체 | Class | Null | 객체의 주소값을 저장할 4byte |
추상객체 | Interface | Null | 객체의 주소값을 저장할 4byte |
Reference Type 참조형 타입은 이름에서부터 알 수 있듯이 직접 어떤 영역에 저장되는 것이 아니라 해당 객체는 Heap영역에 저장되어있는 값의 주소를 가지고 있고 객체가 호출될 때 해당 객체가 주소값을 참조하는 형태로 값이 저장된다.
배열형 Array타입에는 primitive변수들로 이루어진 배열도 해당된다.
boolean[], char[], int[], float[]...
객체 타입 Wrapper class
기본 타입 | 객체 타입 | 할당되는 메모리 크기 | |
---|---|---|---|
객체 | boolean | Boolean | 객체의 주소값을 저장할 4byte |
객체 | byte | Byte | 객체의 주소값을 저장할 4byte |
객체 | short | Short | 객체의 주소값을 저장할 4byte |
객체 | int | Integer | 객체의 주소값을 저장할 4byte |
객체 | long | Long | 객체의 주소값을 저장할 4byte |
객체 | float | Float | 객체의 주소값을 저장할 4byte |
객체 | double | Double | 객체의 주소값을 저장할 4byte |
객체 | char | Character | 객체의 주소값을 저장할 4byte |
Wrapper class도 기본적으로 객체이다, Reference Type에 속하고 주소값을 가지고 있으며 호출될 때 해당 객체가 Heap영역의 주소값을 참조하는 형태이다.
*p.s Wrapper class는 일반 타입의 상위호환 꼴이어서 char의 Wrapper class가 String이라고 착각 할 수도 있지만, char의 Wrapper class는 Character이다. String은 문자열을 저장하기 위한 독립적인 Class이다.