Garbage Collector는 힙 영역에서 더이상 사용되지 않는 객체들을 제거하고 메모리를 회수하는 역할
메모리를 동적으로 할당하고 사용한 후, 해제하지 않으면 메모리 누수가 발생해 시스템의 성능 저하나 프로그램의 불안정성을 초래할 수 있다. 하지만 GC는 주로 메모리 누수와 같은 문제를 방지하고, 메모리 관리를 효율적으로 수행하는데 사용된다. 또한 개발자가 직접 메모리 해제 작업을 수행하지 않아도 되기 때문에 개발에 집중할 수 있다.
Stop The World : JVM이 GC를 실행하기 위해 애플리케이션의 실행을 멈추는 작업. GC를 실행하는 쓰레드 외 다른 모든 쓰레드는 작업이 중단된다.
Mark And Sweep : Stop The World 이후, GC가 사용되지 않는 메모리를 식별하는 과정을 Mark, 이 메모리들을 제거하는 과정을 Sweep이라 한다.
Young 영역 : 새롭게 생성한 객체들이 위치한다. 대부분의 객체는 금방 접근 불가능한 상태가 되므로 많은 객체가 Young 영역에 생성되었다가 사라진다. Young 영역은 1개의 Eden 영역(새로 생성된 객체 할당되는 영역)과 2개의 Survivor 영역(최소 1번 이상의 GC이후 남은 객체가 존재하는 영역)으로 구성된다.
Old 영역 : Young 영역에서 계속 사용되어 살아남은 객체가 존재하는 영역이다.