Skip to the content.

- 학습 목표 달성 확인 목록

- [] 가비지의 의미를 알고 있는가?

class Score {
      String name;
      int kor;
      int eng;
      int math;
      int sum;
      float aver;
    }

    // Score 레퍼런스 선언
    Score s1;

    // 인스턴스를 만들어 그 주소를 레퍼런스에 저장한다.
    s1 = new Score();

    // 새 인스턴스를 만들어 s1에 주소를 저장한다.
    s1 = new Score();

이렇게 되면 기존에 들어 있던 주소는 잃어 버린다.

주소를 잃어버려 사용할 수 없는 메모리를 가비지(garbage)라고 부른다.

이럴때 힙에 불필요하게 메모리를 잡아먹는 애들을 제거하는 일을 하는 친구를

GC(garbage collector)라고 부르며

동작할 때는 JVM이 관리하는 메모리가 부족할 때나

CPU가 한가할 때이며

System.gc()로 명령할 수 있으나

바로 동작하지 않으나 빠른시간내에 동작하도록 한다.

- [] 레퍼런스 카운트란 무엇인가?

메모리를 제어하는 방법 중 하나로 쓰레기 수집의 한 방식이다.

각 오브젝트마다 레퍼런스 카운트를 관리하여 레퍼런스 카운트가 0이 되는 오브젝트는 가비지로 간주하고 메모리에서 삭제한다.

즉 오브젝트에 참조(레퍼런스)되면 레퍼런스 카운트는 1이 증가하고 레퍼런스가 사라지면 1이 감소된다.

- [] 가비지 컬렉터는 무엇인지 알고 있는가?

첫번째 답변 참조!

- [] 가비지 컬렉터가 실행되는 경우는 언제인가?

첫번째 답변 참조!

- [] System.gc() 메서드는 무슨 일을 하는가?

첫번째 답변 참조!