본문 바로가기

Programming/JAVA

Garbage Collector 호출하기

Garbage Collector 호출하기

C++과는 다르게 자바에서 new 연산자를 통해 객체를 생성한 후 특별히 객체를 삭제하는 키워(C++의 delete)는 없습니다. 그 이유는 JVM이 더 이상 사용되지 않는 객체를 자동으로 메모리에서 삭제하는데 이렇게 사용되지 않는 객체를 처리하는 것이 Garbage Collector 입니다. 자바언어의 강점이기도 합니다.

한편 프로그래머가 명시적으로 이 Garbage Collector를 호출 할 수 있는데 System.gc()를 이용 합니다.

아래의 예문을 참고 하세요~

public class CallGarbageColletor {

        public static void main(String[] args) {
                byte[] test = new byte[4096];
               
                Runtime r = Runtime.getRuntime();
               
                System.out.println("사용 메모리 : " + (r.totalMemory() - r.freeMemory())/1024 + "K");
               
                //객체를 명시적으로 해제
                test = null;
               
                //Garbage Colletor 호출
                System.gc();
               
                r = Runtime.getRuntime();
               
                System.out.println("-----객체를 해제 후 -----");
                System.out.println("사용 메모리 : " + (r.totalMemory() - r.freeMemory())/1024 + "K");
                       
        }
}

[결과]
사용 메모리 : 276K
-----객체를 해제 후 -----
사용 메모리 : 137K 

 

'Programming > JAVA' 카테고리의 다른 글

메모리 사용량 확인  (0) 2008.04.28
System 환경 읽어 오기  (0) 2008.04.28
OutOfMemory 해결법  (0) 2008.04.28
윈도우 레지스트리 내용 다루기  (0) 2008.04.28
JBuilder에서 CVS 소스버전 콘트롤  (0) 2008.04.28