IT/Java

[Java] JVM의 Garbage Collector

어린이개발자 2023. 5. 21. 20:33

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