garbage collector(GC)

2020. 3. 10. 11:19자바 Java/자바 공부 java study

반응형

 

 

 

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 이 되면, 포함하는 자식 객체들도 자동으로 가비지 대상이 된다. 

 

 

반응형