자바 Java/자바 공부 java study
garbage collector(GC)
nemoluv
2020. 3. 10. 11:19
반응형
garbage란 정리되지 않은 메모리, 유효하지 않은 메모리 주소를 말한다.
-프로그래밍 언어로는 "Dangling Object" 이라고 한다.
c/c++언어와 달리 자바는 개발자가 명시적으로 객체를 해제할 필요가 없다.
사용하지 않는 객체는 메모리에서 삭제(해제) 하는 작업을 garbage collector(GC)라 부르며, JVM에서 GC를 수행한다.
기본적으로 JVM의 메모리는 총 5가지 영역(클래스, 스택, 힙, 네이티브 메서드, pc레지스처)으로 나뉘는데 GC는 heap 영역만 다룬다.
garbage collector 가 실행되는 때
: JVM이 프로그램을 실행하다가 메모리가 부족해지면 OS추가로 메모리를 더 요청하게 된다. 바로 이때 실행 된다.
가비지의 대상이 되는 경우
: 프로그램이 실행되면서 코드상에서 참조되지 않는 개체들
- 객체가 null인 경우 (ex: String s=null;)
- 블럭 안에서 생성된 객체는 블럭 실행 종료후 대상이 된다.
- 부모 객체가 null 이 되면, 포함하는 자식 객체들도 자동으로 가비지 대상이 된다.
반응형