[JAVA] Heap vs Stack 메모리

유존돌돌이·2022년 2월 16일
0

JAVA

목록 보기
4/22
post-thumbnail
  1. Stack
    1) Heap영역에 생성된 Object 타입의 데이터의 참조값이 할당
    2) 원시타입의 데이터가 값과 함께 할당된다.
    3) 지역변수들은 scope에 따른 visibility를 가진다
    4) 각 Thread는 자신만의 Stack을 가진다.
    5) Primitive type의 데이터들이 할당되며, 참조값이 아니라 실제 값을 stack에 직접 저장한다.
    6) Thread 하나당 하나씩 할당된다.

  2. Heap
    1) Heap 영역에는 주로 긴 생명주기를 가지는 데이터들이 저장.
    2) 애플리케이션의 모든 메모리 중 Stack에 있는 데이터를 제외한 부분이라고 보면 됨.
    3) 모든 Object 타입(Integer, String ..)은 heap 영역에 생성
    4) 몇개의 스레드가 존재하든 상관없이 하나의 heap만 존제
    5) Heap 영역에 있는 오브젝트들을 가리키는 레퍼런스 변수가 stack에 올라가게된다

그림참조 : https://dzone.com/articles/java-memory-management
설명참조 : https://yaboong.github.io/java/2018/05/26/java-memory-management/

0개의 댓글

Powered by GraphCDN, the GraphQL CDN