기술 정리/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에 관한 얘기!
[Java] Garbage Collection
Garbage Collection Stack이 도달할 수 없는 Heap영역의 잉여 데이터를 삭제하는 작업 Mark and Sweep Mark : Stack의 모든 변수를 스캔하면서 마킹. Stack의 변수가 레퍼런스하고 있는 Heap의 오브젝트도 마킹. S..
treejin1771.tistory.com
반응형