JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로 삭제하는 프로세스
stack 자료구조를 구현한
StackImpl
에서clear()
함수는 기존에 할당 받은 메모리를 초기화 할 수 있지만, 기존 배열을 참조하지 않고 새롭게 배열을 만들어서 참조하게 되면 기존 배열(객체가 참조되고 있지 않은 상태)은 실시간으로 동작되는 GC에 걸러져서 자동으로 해제된다.
public class StackImpl implements Stack{
//생략
@Override
public void clear() {
if (isEmpty()) System.out.println("Stack is already empty!");
else{
top = -1;
stackArr = new char[this.stackSize];
System.out.println("Stack clear complete");
}
}
Heap 메모리 영역을 효율적으로 Garbage Collection을 하기 위해서 적당하게 Eden, Survival, Old Generation으로 구분하고 Mark And Sweep 알고리즘을 이용해서 GC 대상을 특정한다.