가비지 컬렉터(garbage collector)
- 힙 메모리에 존재하는 가비지를 찾아 제거하는 일을 한다.
- 다른 용도로 사용할 수 있도록 메모리를 해제하는 일을 한다.
[1번]
public class GarbageEx1 {
public static void main(String[] args) {
Score s1 = new Score();
Score s2 = s1;
}
}
[2번]
public class GarbageEx2 {
public static void main(String[] args) {
Score s1;
s1 = new Score();
s1 = new Score();
}
}
[3번]
public class GarbageEx3 {
public static void main(String[] args) {
Score s1 = new Score();
Score s2 = new Score();
s2 = s1;
}
}
- JVM은 객체의 참조 상태를 관리하기 위해 "레퍼런스 카운트(reference count)"를 이용한다.
- 레퍼런스 카운트가 0인 상태가 "가비지(garbage)"이다.
- 주소를 잃어버리면 다시 연결시킬 수 없다.
가비지 컬렉터(garbage collector)의 실행
- 메모리 부족할 때
- CPU가 한가할 때
Q. System.gc()라는 메서드가 있던데요?
A. System.gc()를 호출하여 가비지 실행을 요청할 때
바로 실행하는 것이 아니라 빠른 시간 내에 실행할 것을 독촉하는 것이다.
아무래도 원래의 시간보다는 앞 당겨 청소를 하게 되겠지만 System.gc()로 가비지를 제거한다고 착각하지 말자.
'Language > Java' 카테고리의 다른 글
🎉 상수(constant)는 언제 사용하는 것일까? (0) | 2021.07.27 |
---|---|
💉 의존 객체는 어떻게 사용하면 될까요? (0) | 2021.07.26 |
🙌 당신의 삶의 질을 높여주는 Eclipse Shortcut (0) | 2021.07.22 |
🪁 Calculator를 통해 배우는 Static Method & Instance Method (0) | 2021.07.20 |
🔎 객체 배열은 왜 사용할까? (0) | 2021.07.17 |