Primitive 타입과 Reference 타입

이규은·2021년 9월 10일
1

타입이란 데이터가 메모리에 어떻게 저장되고 프로그램에서 어떻게 처리되어야 하는지 명시적으로 알려주는 것이다. 자바에서는 크게 Primitive 타입과 Reference 타입으로 구분된다.

Primitive 타입

정수, 실수, 문자, 논리 리터럴등의 실제 데이터 값을 저장하는 타입이다

  • 총 8가지의 타입을 미리 정의하여 제공한다
  • 기본값이 있기 때문에 Null이 존재하지 않는다.
  • 실제 값은 스택 영역에 저장된다
타입 할당되는 메모리 크기 기본값 데이터 표현 범위
논리형 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 10^38) 의 근사값
double(기본) 8 byte 0.0 (1.7 X 10^-308) ~ (1.7 X 10^308) 의 근사값
문자형 char 2 byte(유니코드) '\u0000' 0 ~ 65,535

Reference 타입

객체의 번지를 참조 하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입이다.

  • Primitive타입을 제외한 타입들은 모두 Reference타입이다.
  • Null이 존재한다.
  • 메모리 주소 위치에 실제 값을 가리키는 또 다른 주소를 저장한다. 레퍼런스 타입의 실제 값이 존재하는 위치는 힙 영역이다.
타입 예시 기본값 할당되는 메모리 크기
배열(Array) int[] arr = new int[5]; Null 4 byte (객체의 주소값)
열거(Enumeration) Null 4 byte (객체의 주소값)
클래스(Class) String str = "test";
Student sujin = new Student();
Null 4 byte (객체의 주소값)
인터페이스(Interface) Null 4 byte (객체의 주소값)
profile
안녕하세요

0개의 댓글