본문 바로가기

Java

Java 데이터 타입 Primitive type(기본형) Reference Type(참조형)

728x90

자바에서 변수의 데이터 타입은 크게 원시 타입이라고도 불리는 Primitive Type(기본형)Reference Type(참조형)으로 나뉜다. 영어로 말해서 뭘 말하는 건지 모를 수 있으니 알아두자

 

Primitive Type 기본형

자바 메모리 영역중 스택 영역에 실제 값이 할당되는 기본 데이터 타입들이다.

자바에서 데이터 타입의 최소 크기는 1byte다.

  • boolean : 논리형 1byte  true 또는 false
  • char : 문자형 2byte  유니코드 문자데이터
  • byte : 정수형 1byte  -2^7 ~ 2^7-1
  • short : 정수형 2byte  -2^15 ~ 2^15-1
  • int : 정수형 4byte  -2^31 ~ 2^31-1
  • long : 정수형 8byte  -2^63 ~ 2^63-1
  • float : 실수형 4byte  1.4E-45 ~ 3.4028235E38
  • double : 실수형 8byte  4.9E-324 ~ 1.7976931348623157E308'

 

정수형의 숫자 범위에 대해 데이터 타입의 크기 byte형을 예시로 들면

1byte = 8bit인데 8bit중 맨 앞 1bit는 음수 양수의 부호를 표시하고 나머지 7bit로 숫자를 표시하기 때문에 표현 범위가 

-2^7 ~ 2^7-1로 된다. -1은 중간에 0이 있기 때문에 -1을 해준다.

 

 

Reference Type 참조형

기본형을 제외한 데이터 타입들이다. 실제 객체는 자바의 Heap영역에 저장되고 객체를 참조하고 있는 변수는 기본형 데이터와 같이 Stack영역에 저장된다.

 

Ex)

int num = 25;

char charactor = 'a';

String str= "자바";

스택 영역 힙 영역
num = 25
charactor = 'a'
str = 주소값
String 자바

 

힙 영역 데이터들은 가비지 컬렉터인 GC에 의해 관리된다.

728x90