[JAVA] 가비지 컬렉션(Garbage Collection)

in·2023년 9월 1일
0

JAVA

목록 보기
7/9

가비지 컬렉션(GC)

사용하지 않는 객체는 메모리에서 삭제하는 작업
JVM에서 수행(힙 메모리만 다룸)

C/C++ 언어와 달리 자바는 개발자가 명시적으로 객체를 해제할 필요가 없음

GC의 대상

  1. 객체가 NULL인 경우(ex. String str = null)
  2. 블럭 실행 종료 후, 블럭 안에서 생성된 객체
  3. 부모 객체가 NULL인 경우, 포함하는 자식 객체

GC 동작

1) Marking : GC Root로 부터 모든 변수를 스캔하면서 각각 어떤 객체를 참조하고 있는지 찾아서 마킹

2) Sweep : Unreachable한 객체들을 Heap에서 제거

3) Compact (optional) : Sweep 후에 분산된 객체들을 Heap의 시작 주소로 모아 메모리가 할당된 부분과 그렇지 않은 부분으로 나눔

[참고 자료]

🔗링크1
🔗링크2

0개의 댓글