메모리 구조 및 순서
나의 답변
cpu에 가까운 순서는 code, data, heap, stack 이다.
개념
-
코드(Code) 영역
우리가 작성한 소스코드가 들어 가는 부분. 즉, 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code)영역이라고 부른다. 코드영역은 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수등이 여기에 지정된다.
-
데이터(Data) 영역
전역변수와 static변수가 할당되는 영역이다. 프로그램의 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 소멸되는 영역이다.
-
스택(Stack) 영역
프로그램이 자동으로 사용하는 임시 메모리 영역이다. 함수 호출 시 생성되는 지역 변수와 매개변수가 저장되는 영역이고, 함수 호출이 완료되면 사라진다.
-
힙(Heap) 영역
프로그래머가 할당/해제하는 메모리 공간이다. Java에서는 가비지 컬렉터가 자동으로 해제한다. 이 공간에 메모리 할당하는 것을 동적 할당(Dynamic Memory Allocation)이라고도 부른다.
예를 들어
클래스, 클로저
가 이 부분에 해당 된고,런타임 시
에 크기가 결정된다.
출처 : https://medium.com/jinshine-기술-블로그/컴퓨터-기초-메모리구조-memory-structure-4fa6010f333e