GC(Garbage Collection)은
JVM에서 제공하는 힙 영역에 존재하는 메모리를 정리하는 역할을 맡는다.

- 새로 생성된 객체는 Eden 영역에 위치한다.
Eden영역에서 GC가 한번 발생하고도 살아남은 객체는 Survivor Space 영역중 한 곳으로 이동한다.- 해당 과정을 반복하며 살아이있는 객체는
Old Generation영역으로 이동한다.
- Old영역에 위치한 객체들을 검사하여 참조되지 않는 객체들을 삭제한다.
이것을stop-the-world라고 하는데Major GC가 발생하면 GC를 실행하는 스레드를 제외한 나머지 스레드는 모두 작업을 멈춘다. 이는 GC작업이 마무리 된 후에 다시 작업을 시도한다.
GC가 객체를 소멸하기 위해서는 가비지(Garbage)를 선정해야하는데 어떻게 이를 선정하는지에 대한 방법을 다룬다.
어떤 힙 영역의 객체가 참조되고 있다면
reachability그렇지 않으면unreachability라고 한다.
GC는unreachability객체를 찾아 소멸한다.