JVM 및 Garbage Collector 개념에 대한 정리를 하고자 한다.
1. JVM (Java Virtual Machine) 이란?
- 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램
2. Garbage Collector 란?
- 동적으로 할당된 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능
- 이를 온전히 이해하기 위해, 메모리의 구조 중 Stack 영역과 Heap 영역에 대해 알아야 한다.
- Stack 영역
- 정적으로 할당된 메모리 영역
- 원시 타입의 데이터가 값과 함께 할당
- Heap 영역에 생성된 Object 타입의 데이터의 참조 값 할당
- Heap 영역
- 동적으로 할당된 메모리 영역
- 모든 Object 타입의 데이터가 할당
- Heap 영역의 Object 를 가리키는 참조 변수가 Stack 영역에 할당
3. Garbage Collector 작동 과정
- 1. Garbage Collector 가 Stack 영역의 모든 변수를 스캔하면서 각각 어떤 객체를 참조하고 있는지 찾아서 마킹
- 2. Reachable Object 가 참조하고 있는 객체도 찾아서 마킹
- 여기서 Reachable Object 는 1. 에서 이야기한 “참조 되고 있는 객체”를 의미
- 3. 마킹 되지 않은 객체를 Heap 영역에서 제거
4. Garbage Collector 종류
- 1. Serial GC
- 2. Parallel GC
- 3. Concurrent Mark Sweep GC
- 4. G1 GC
5. 출처
- https://www.youtube.com/watch?v=vZRmCbl871I
[ 우아한 테크 - 10분 테크톡, 던의 JVM의 Garbage Collector ]
'IT > Java' 카테고리의 다른 글
[Java] StringBuffer vs. StringBuilder (0) | 2025.01.05 |
---|---|
[Java] volatile 키워드 (1) | 2024.12.09 |
[JUnit] TDD를 편하게 하기 위한 JUnit 사용법 (0) | 2023.03.25 |
[Quartz] Quartz 스케줄러 적용의 건 (0) | 2023.01.13 |
2021-03-13 일지1 (0) | 2021.03.13 |