seong

05 Static, Stack, Heap 본문

자바/자바 실습

05 Static, Stack, Heap

hyeonseong 2022. 7. 28. 09:11

자바 메모리 구조 (Static, Stack, Heap)

프로그램을 실행 하기 위해선 메모리(RAM)이 필요하며

운영체제(OS)가 메모리에게 저장공간을 할당 해 준다.

이 할당 공간을 효율적으로 사용 하느냐에 따라 프로그램의 속도가 바뀐다.

자바에서는 효율적인 메모리를 사용하기 위해 Static, Stack, Heap를 사용한다.

자바의 세가지 메모리 영역(Static, Stack, Heap)

Static 영역 (Class에 고정되어 있는 멤버)

  • Static영역은 “정적”이다.
  • Static는 프로그램을 처음 시작할 때 한번 실행하게 되며, 프로그램이 종료될 때 까지 남아있는다.
    • 즉 패키지, 클래스 정보가 호출 되는 시점에 메모리에 할당된다.

Stack 영역

  • Stack은 지역 변수 라고도 할 수 있다.
  • 기본 자료형에 저장되는 데이터의 값이 Stack라고 할 수 있다.
  • 이 데이터는 호출될 때 메모리에 할당되고, 종료되면 메모리에서 제거된다.
    • int a = 10;  // a라는 변수를 Stack 영역에 메모리를 할당하고 10을 저장한다.

Heap 영역

  • Heap 는 전역 변수라고 할 수 있다.
  • 참조형의 데이터 타입을 갖는 객체, 배열등은 Heap영역에 데이터가 저장된다.
  • Heap는 실제 데이터를 갖고 있고
  • Stack는 Heap의 참조 값을 가지고 있다.
    • 자동차를 예로 들면 자동차 : Heap , 속도 50Km : 속도는 액셀을 밟고 있지 않는다면 사라지기 때문에 Stack 라고 할 수 있다.

'자바 > 자바 실습' 카테고리의 다른 글

07 자바 연산자  (0) 2022.07.28
06 자바 기본 규칙  (0) 2022.07.28
04 JVM  (0) 2022.07.28
03 컴파일, 인터프리터  (0) 2022.07.27
02 Stateful, Stateless  (0) 2022.07.27