본문 바로가기
언어(Language)/Java

[Java] 기본형과 참조형 데이터 타입

by 올리브영 2023. 2. 23.
728x90
반응형

자바는 기본형 타입참조형 타입 2종류가 존재한다.

 

기본형 타입


  타입 할당되는 메모리 크기 기본값 데이터의 표현 범위
정수형  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) 의 근사값
논리형 boolean 1 byte false true, false
문자형 char 2 byte(유니코드) '\u0000' 0 ~ 65,535
  • 기본형 변수 안에는 직접 값들을 넣을 수 있다.
  • 스택 영역에 저장된다.

 

참조형 타입


타입 기본값 할당되는 메모리 크기
배열(Array) Null Null
열거(Enumeration) Null
클래스(Class) Null
인터페이스(Interface) Null
  • 참조형 변수 안에는 값들을 저장하고 있는 객체를 주소를 가지고 있다.

 

스택(Stack)과 힙(Heap)


 

스택(Stack)

  • 기본형 변수 저장 영역
  • LIFO(Last In First Out) - 후입선출
  • 정적
  • Heap 영역의 Object 타입의 데이터들에 대한 참조 변수를 할당
  • Thread 당 하나씩 할당되며 각 Thread에서 다른 Thread의 Stack 영역에는 접근 불가능
  • 현재 변수 선언 블록 수행이 종료되면 자동으로 삭제

힙(Heap)

  • 주로 생명 주기가 긴 데이터(모든 Object 타입 ex) Integer, String, ArrayList,…)들 저장 영역
  • FIFO(First In First Out) - 선입선출
  • 동적
  • Stack 영역의 참조 변수가 가리키는 Object 타입의 데이터 할당
  • 몇 개의 Thread가 존재하든 상관 없이 단 하나만 존재
  • Garbage Collection: Heap에서 더 이상 사용하지 않는 불필요한 메모리를 Garbage라 부르며, JVM의 Garbage Collector에 의해 자동으로 회수되어 사용할 수 있는 메모리 공간을 늘리는 일
728x90
반응형