본문 바로가기

자바기초

메모리 영역 - 코드 영역, 데이터 영역, 힙 영역, 스택 영역

메모리 영역은 코드/데이터/힙/스택 으로 구성되어 있다.

메모리

 

프로그램이 실행되기 위해서는 먼저 프로그램의 메모리가 로드되어야 함.

또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요.

 

컴퓨터 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하는데, 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 같다..

 

 

1. 코드(code) 영역

실행할 프로그램의 코드가 저장되는 영역으로, 텍스트 영역이라고도 함.

CPU는 코드영역에 저장된 명령어를 하나씩 가져가서 처리.

실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등이 지정됨.

 

2. 데이터(Data) 영역

프로그램의 전역 변수정적(static) 변수 저장되는 영역.

프로그램의 시작과 함께 할당되고, 프로그램이 종료와 함께 소멸.

 

3. 스택(stack) 영역

함수의 호출과 관계되는 지역 변수매개변수가 저장되는 영역.

함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸.

스택 프레임(stack frame) : 스택 영역에 차례대로 저장되는 함수의 호출 정보

 

4. 힙(heap)영역

사용자가 직접 관리할 수 있고 '해야만 하는' 메모리 영역.

사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨.

메모리의 낮은 주소에서 높은 주소의 방향으로 할당.

'자바기초' 카테고리의 다른 글

서버  (0) 2020.05.13
동적할당, 정적할당, 가비지컬렉터  (0) 2020.05.13
부동소수점과 그 한계  (0) 2020.05.13
절차 지향 언어와 객체 지향 언어  (0) 2020.05.13
디자인 패턴 & 스트래티지 패턴  (0) 2020.05.13