[java] 자바 가비지 컬렉션(Java garbage collection)

가비지 컬렉션(Garbage Collection)은 자바 가상 머신(JVM, Java Virtual Machine)의 주요 기능 중 하나로, 자동적으로 메모리 관리를 담당합니다. 가비지 컬렉션은 프로그램에서 더 이상 사용되지 않는 객체를 파악하고, 해당 객체의 메모리를 자동으로 해제하여 메모리 누수(memory leaks)를 방지합니다.

가비지 컬렉션 프로세스

자바에서 가비지 컬렉션은 다음과 같은 프로세스를 통해 이루어집니다.

  1. 객체 생성: 프로그램에서 새로운 객체가 생성됩니다.
  2. 객체 사용: 생성된 객체가 프로그램에서 사용됩니다.
  3. 객체 참조: 생성된 객체에 대한 참조(reference)가 다른 객체나 변수에 할당됩니다.
  4. 객체 사용 종료: 생성된 객체가 더 이상 사용되지 않습니다.
  5. 객체 참조 해제: 객체에 대한 참조가 없어집니다.
  6. 가비지 컬렉션 실행: 가비지 컬렉션이 실행되면서 더 이상 사용되지 않는 객체의 메모리를 해제합니다.

가비지 컬렉션 알고리즘

가비지 컬렉션은 다양한 알고리즘을 사용하여 메모리를 관리합니다. 대표적인 알고리즘으로는 다음과 같은 것들이 있습니다.

가비지 컬렉션의 장단점

가비지 컬렉션의 장점은 다음과 같습니다.

하지만, 가비지 컬렉션은 다음과 같은 단점도 가지고 있습니다.

참고 자료