기술 정리/Java

[Java] Stack & Heap

Treejin 2021. 3. 21. 00:59
반응형

너무 잘 정리된 문서 참고!

 

자바 메모리 관리 - 스택 & 힙

개요 Java 에서 메모리 관리는 어떻게 이루어지는지 알아보기 위함. Stack 과 Heap 영역 각 역할에 대해 알아본다. 간단한 코드예제와 함께 실제 코드에서 어떻게 Stack 과 Heap 영역이 사용되는지 살펴

yaboong.github.io

Stack & Heap

자바의 메모리 영역중에는 Stack과 Heap이 있다.

 

Stack

  • 각 Thread마다 생성된다.
  • 원시타입의 데이터(primitive type : byte, short, int, long, double, float, boolean, char)는 stack에 데이터가 값과 함께 할당된다.
  • 지역변수들은 scope에 따른 visibility를 가진다.

Heap

  • 프로젝트 하나당 하나의 Heap이 존재한다. (각 Thread마다 X)
  • Object를 상속받는 데이터(wrapper class : Byte, Short, Integer, Long, Double, Float, Boolean, Character)는 Heap영역에 생성되고, Stack에는 Heap영역의 데이터를 참조하는 레퍼런스 변수가 저장된다.

이어서 Garbage Collection에 관한 얘기!

treejin1771.tistory.com/69

 

[Java] Garbage Collection

Garbage Collection Stack이 도달할 수 없는 Heap영역의 잉여 데이터를 삭제하는 작업 Mark and Sweep Mark : Stack의 모든 변수를 스캔하면서 마킹. Stack의 변수가 레퍼런스하고 있는 Heap의 오브젝트도 마킹. S..

treejin1771.tistory.com

 

반응형