본문 바로가기

Dev/JAVA

Heap & Stack

Stack

  • Heap 영역에 생성된 Object 타입의 데이터의 참조값이 할당됨
  • 원시타입의 데이터가 값과 할당됨
  • 지역변수들은 scope에 따ㅏ른 visibility를 가짐
  • 각 Thread는 자신만의 stack을 가짐

 

Heap

  • Heap영역에는 주로 긴 생명주기를 가지는 데이터들이 저장됨. (대부분의 오브젝트는 크기가 크고, 서로 다른 코드블럭에서 공유되는 경우가 많음)
  • 애플리케이션의 모든 메모리 중 stack에 있는 데이터를 제외한 부분이라고 보면 됨.
  • 모든 Object 타입(Integer, String, ArrayList, …)은 heap영역에 생성됨
  • 몇개의 스레드가 존재하든 상관없이 단 하나의 heap 영역만 존재
  • Heap 영역에 있는 오브젝트들을 가리키는 레퍼런스 변수가 stack 올라가게 .

출처 : https://yaboong.github.io/java/2018/05/26/java-memory-management/

'Dev > JAVA' 카테고리의 다른 글

Marshal & Unmarshal  (1) 2021.09.28
OOP  (2) 2021.09.28
JAVA 8, 9, 10  (0) 2021.09.28
lombok  (0) 2021.09.27
extends / implements (inheritance)  (0) 2021.09.24