프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 4가지가 있다.
🌈 1. 코드(code) 영역
- 실행할 프로그램의 코드가 저장되는 영역이다.
- CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리한다.
🌈 2. 데이터(data) 영역
- 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역이다.
- 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다.
🌈 3. 스택(stack) 영역
- 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역
- 후입선출(LIFO) 방식에 따라 동작한다.
- 컴파일 타임에 크기가 결정된다.
🌈 4. 힙(heap) 영역
- 사용자가 직접 관리할 수 있는 영역이다.
- 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.
- 흔히 자바에서 사용하는 class와 그 class 객체들은 이곳에 저장된다.
- 런타임 시에 크기가 결정된다.