Skip to content

Latest commit

 

History

History
10 lines (8 loc) · 1.26 KB

[#24] Garbage Collectioin의 역할은 무엇인가요.md

File metadata and controls

10 lines (8 loc) · 1.26 KB

Garbage Collection의 역할은 무엇인가요?

Garbage Collection이란 사용하지 않는 객체를 메모리에서 삭제해주는 작업을 의미하며 자바 언어의 큰 장점이라고 할 수 있습니다. C/C++의 경우 개발자가 객체 해제를 직접 실행해야하지만 자바의 경우 JVM에서 GC를 수행하게 됩니다. 객체의 메모리를 해제해주지 않으면 메모리 누수(Memory Leak)이 발생 할 수 있습니다.

JVM의 메모리는 총 5가지의 영역으로 구성되어있는데 그중 GC는 힙 메모리 영역에서 사용되어집니다. 일반적으로 객체가 NULL인 경우, 블럭 실행 종료 후, 블럭 안에서 생성된 객체, 부모 객체가 NULL인 경우, 포함하는 자식 객체 경우에 GC의 대상이 됩니다. 또한 GC는 Weak Generational Hypothesis 에 기반합니다. 신규로 생성한 객체의 대부분은 금방 사용하지 않는 상태가 되고, 오래된 객체에서 신규 객체로의 참조는 매우 적게 존재한다는 가설입니다. 이 가설에 기반하여 자바는 Young 영역과 Old 영역으로 메모리를 분할하고, 신규로 생성되는 객체는 Young 영역에 보관하고, 오랫동안 살아남은 객체는 Old 영역에 보관합니다.