java

데이터 타입 분류와 메모리 사용 영역

쵸비 2022. 10. 26. 15:33
728x90

데이터 타입은 크게 기본 타입(primitive type)과 참조 타입(reference type)이 있다.

  

★ 기본 타입(primitive type)

 

1. 정수 타입 (byte, char, short, int, long)

  

2. 실수 타입 (float, double)

  

3. 논리 타입 (boolean)

  

★ 참조 타입(reference type)

 

  • 배열타입, 열거타입, 클래스, 인터페이스

  

※ String은 배열타입이다.

 

 

  

메모리 사용 영역

 

 

Static area

  • 전역변수정적 멤버변수(static)는  Static에 저장
  • Static영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 유지

 

Stack area

  • 기본 자료형(byte, int, long, double, boolean)에 해당하는 지역변수의 데이터 값이 저장되는 공간
  • 해당 메소드가 호출될 때 메모리에서 할당되고 종료되면 메모리가 해제됨
  • 스레드별로 생성되며, 스레드가 시작하면 할당됨
  • 메소드 호출될 때 Stack에 추가됨 Push
  • 메소드가 종료되면 Frame 제거 Pop

 

Heap area

  • 참조 타입의 변수, 객체, 배열등은 Heap 영역의 공간에 실제 데이터가 저장된다. 모든 스레드가 공유 가능한 영역
  • 참조형 변수는(객체) Stack 영역에서 실제 데이터가 있는 Heap의 영역의 참조 값을 New 연산자를 통행 리턴 받음. 
  • 사용되지 않는 객체는 garbege collerctor가 자동 제거
728x90

'java' 카테고리의 다른 글

연산자(Operator)  (0) 2022.10.26
추상 클래스(abstract class)  (0) 2022.10.26
상속(Inheritance)  (0) 2022.10.26
접근 제어자  (0) 2022.10.26