seong
05 Static, Stack, Heap 본문
자바 메모리 구조 (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 |