- 학습 목표 달성 확인 목록
- [] 가비지의 의미를 알고 있는가?
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() 메서드는 무슨 일을 하는가?
첫번째 답변 참조!