본문 바로가기
Java

[Java] 스택 메모리와 힙 메모리

by 스응 2023. 2. 6.
728x90
728x90

스택 메모리 (Stack memory)

  - 함수가 호출될 때, 그 함수의 지역변수들에게 할당되는 메모리

  - 함수의 수행이 끝나면 자동으로 반환됨

  - 밑에서 위로 쌓아 올라가며 생기고, 위에서부터 사라짐

      → LIFO (Last Input First Output) : 가장 나중에 들어온 것이 가장 먼저 나감

 

 


힙 메모리 (Heap memory, 동적 메모리)

  - 메모리 공간의 크기가 늘었다가 줄었다가 동적으로 변함

  - 'new' 키워드를 통해 객체가 생성되면, 힙 메모리에 해당 객체와 멤버변수 값이 할당됨

  - 하나의 클래스로부터 여러 개의 객체(인스턴스)가 생성되고, 각각 다른 메모리 주소를 가짐

      → 참조변수에 객체의 메모리 주소 값(참조 값)이 저장되며, 참조변수는 스택 메모리에 할당됨

      → 참조 값을 통해 객체에 접근

  - 'Gabage Collector'가 사용하지 않는 메모리를 주기적으로 수거함

      (↔ C 언어에서는 프로그래머가 직접 해제해서 메모리 관리)

 

320x100
반응형

댓글