메모리 구조 및 순서

나의 답변

cpu에 가까운 순서는 code, data, heap, stack 이다.

개념

  • 코드(Code) 영역

    우리가 작성한 소스코드가 들어 가는 부분. 즉, 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code)영역이라고 부른다. 코드영역은 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수등이 여기에 지정된다.

  • 데이터(Data) 영역

    전역변수와 static변수가 할당되는 영역이다. 프로그램의 시작과 동시에 할당되고 프로그램이 종료되어야 메모리가 소멸되는 영역이다.

  • 스택(Stack) 영역

    프로그램이 자동으로 사용하는 임시 메모리 영역이다. 함수 호출 시 생성되는 지역 변수와 매개변수가 저장되는 영역이고, 함수 호출이 완료되면 사라진다.

  • 힙(Heap) 영역

    프로그래머가 할당/해제하는 메모리 공간이다. Java에서는 가비지 컬렉터가 자동으로 해제한다. 이 공간에 메모리 할당하는 것을 동적 할당(Dynamic Memory Allocation)이라고도 부른다.

    예를 들어 클래스, 클로저가 이 부분에 해당 된고,런타임 시에 크기가 결정된다.

출처 : https://medium.com/jinshine-기술-블로그/컴퓨터-기초-메모리구조-memory-structure-4fa6010f333e