자바는 총 8가지의 기본형(Primitive)타입을 미리 정의하여 제공합니다.
Primitive Type은 실제 값을 저장하므로 Stack메모리에 저장됩니다.
Java - Primitive Type
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b12257c7-ff12-4673-a547-4c8971017f7e/Untitled.png)
반면 참조형타입은 기본형 타입을 제외한 모든 데이터타입으로, 사용자정의 클래스 혹은 배열, 인터페이스 등이 해당됩니다. 참조형타입들은 값이 Heap메모리에 적재되고 이를 참조하는 주소값을 스택메모리에 할당하게됩니다.
![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/762d8200-caf5-4cdb-8dcf-faf6065a822e/Untitled.png)
정리
자바의 데이터타입은 크게 기본형타입과 참조형 타입으로 나눌 수 있습니다. 기본형타입은 값을 저장하기에 스택메모리에 저장되며, 참조형 타입은 Heap메모리에 적재됩니다.
- 기본형(Primitive Type)
- 변수에 값 자체를 저장하며, stack 영역에 생성된다.
- 사용하기 전에 반드시 선언되어야 하며, 초기화를 하지 않으면 자료형에 맞는 기본 값이 들어간다.
- OS에 따라 자료의 길이가 변하지 않는다.
- 비객체 타입이며, Null 값을 가질 수 없다.
- 정수(byte, short, int, long), 실수(double, float), 문자(char), 논리(boolean)
- 참조형(Reference Type)
- 기본형을 제외하면 참조형이라고 한다.
- 메모리 상에서 객체가 존재하는 주소를 저장하며, heap 영역에 저장한다.
- 클래스형, 인터페이스형, 배열형이 있다.