변수는 원시 타입과 참조 타입으로 나눌 수 있습니다.
원시 타입은 정수, 실수 등 실제 값을 저장하는 메모리 영역이고
참조 타입은 객체의 주소처럼 메모리의 주소 값을 통해서 객체를 참조하는 타입입니다.
원시 타입
원시 타입은 정적 메모리 영역인 스택에 저장합니다.
종류 | 데이터형 | 크기(byte) | 데이터 범위 |
논리형 | boolean | 1 | true 또는 false |
문자형 | char | 2 | '\u0000' ~ '\uFFFF' |
정수형 | byte | 1 | -128 ~ 127 |
정수형 | short | 2 | -32,768~32,767 |
정수형 | int | 4 | -2,147,483,648 ~ 2,147,483,647 |
정수형 | long | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
실수형 | float | 4 | -3.4 * 10^38 ~ 3.4 * 10^38 |
실수형 | double | 8 | -1.7 * 10^308 ~ 1.7 * 10^308 |
자바의 원시 타입에 대해서 이렇게 표로 나타낼 수 있습니다.
모두 비객체 타입이기 때문에 null 값을 가질 수 없습니다.
참조 타입
참조 타입은 동적 메모리 영역인 힙에 저장합니다.
이 메모리 영역은 GC에 의해서 해제됩니다.
객체를 저장하면 변수는 힙에 대한 주소를 스택 영역에 저장합니다.
그리고, 객체를 사용할 때 이 주소를 참조하여 불러옵니다.
참조 타입 변수는 객체가 비었다는 뜻의 null 데이터를 저장할 수 있습니다.
글을 끝까지 봐주셔서 감사합니다.
틀린 내용이 있다면 댓글로 지적 부탁드립니다.