
⇒ 새로운 객체 중 참조되고 있는 객체는 young영역에 생성된다.

⇒ 각 영역에 사용되는 가비지 콜렉터가 다르다.
- Heap 영역
- Heap은 크게 두 부분으로 나눔: Young Generation과 Old Generation
- Old Generation은 오래 살아남은 객체들이 모이는 공간
- minor GC 때도 계속 살아남아 reference가 유지된 객체들이 young → old로 승격(promotion)됨


- minor GC 과정
→ Young Generation은 Eden + Survivor(S0, S1) 로 구성
-
Mark (마킹)
- Eden + 현재 사용 중인 Survivor 영역(S0 또는 S1)에서 reachable 객체를 마킹
- 참조가 끊긴 객체(unreachable)는 마킹 안 됨
-
Copy (복사)
-
Sweep
- Eden과 사용했던 Survivor 영역에서 마킹 안 된 객체(죽은 객체)를 삭제
- 사실상 복사 후 남은 공간 전부 초기화되는 효과
💡 minor GC에서는 Copy-Collection 방식이 주로 쓰임
- 이유: Young 영역은 대부분 객체가 금방 죽기 때문에 마킹된 소수 객체만 복사하고 나머진 한 번에 지우는 게 빠르다.