GC가 동작하는 Heap 메모리는 크게 [Young Generation] 영역과 [Old Generation] 영역으로 나뉜다.
[Young Generation]
1개의 [Eden] 영역과 2개의 [Survivor] 영역으로 구성되어 있다.
Young Generation 에서 일어나는 GC를 Minor GC 라고 한다.
Minor GC 동작과정
새로 생성된 객체는 Eden 영역에 위치한다.
Eden 영역에서 GC가 발생한 후 살아남는 객체가 Survivor 영역 중 한 곳으로 이동한다.
Survivor 영역은 GC 후 살아남은 객체가 계속해서 쌓이는 영역인데, 두 개의 Survivor 영역 중 한 쪽 영역이 가득차면 다시 GC를 통해 비어있는 다른 Survivor 영역으로 객체를 이동시킨다. 즉, 두 개의 Survivor 영역 중 한 곳은 반드시 비어있는 상태여야 한다.
위 과정을 반복하면서 계속 살아남은 객체가 특정 시간이 지나면 Old Generation 영역으로 이동한다. 이를 Promotion 이라고 한다.
[Old Generation]
Heap을 Young 과 Old로 나누는 이유