Java

[Java] 자바의 데이터 타입(기본타입, 참조타입)

데메즈 2023. 7. 19. 18:43
728x90
반응형

기본 타입과 참조 타입

자바의 데이터 타입은 실제 값을 의미하는 기본 타입(Primitive type)과 어떤 값이 저장된 주소를 값으로 갖는 참조 타입(Reference type)이 존재한다.

기본 타입(Primitive type)

값을 저장할 때, 데이터의 실제 값이 저장되고 스택(stack) 메모리에 저장된다.

기본 타입에는 정수형(byte, short, int, long), 실수형(float, double), 문자형(char), 논리형(boolean)으로 8가지가 있다.

기본값이 존재하기 때문에 null 개념이 존재하지 않으므로 만약 기본형 타입에 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 1038) 의 근사값
 double(기본)  8 byte  0.0  (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값
 문자형  char  2 byte (유니코드)  '\u0000'   0 ~ 65,535

 

참조 타입(Reference type)

값을 저장할 때, 데이터가 저장된 위치를 나타내는 주소 값이 저장되고, 힙(heap) 메모리에 저장된다.

객체의 주소를 저장하며 기본형을 제외한 나머지 타입을 뜻하고, 빈 객체를 의미하는 null 개념이 존재한다. 

 타입  예시  기본값 할당되는 메모리 크기 
 배열(Array)  int[] arr = new int[5];  Null  4 byte (객체의 주소값)
 열거(Enumeration)    Null
 클래스(Class)  String str = "test";
 Student sujin = new Student();
 Null
 인터페이스(Interface)     Null

 

기본 타입과 참조 타입의 차이

기본 타입은 실제 값이 저장되고, 참조 타입은 값이 저장된 위치를 나타내는 주소 값이 저장된다.

728x90
반응형