2011년 4월 28일 목요일

Garbage Collection

객체 생성/ 소멸

객체를 생성하게 되면 해당 객체는 메모리상의 Runtime Data AreaHeap Area에 자리를 잡음
자바에서는 사용자에게 직접적인 메모리 해제를 허락하고 있지 않음

Garbage Collection

Garbage Collection(가비지 컬렉션) : Garbage Collector heap영역에 할당 된 더 이상 사용되지 않는 메모리인 Garbage를 다른 객체가 사용할 수 있도록 정리하는 것
객체를 가리키는 참조변수가 null로 지정되거나 객체를 더 이상 참조하지 않게 되었을 때 가비지 컬렉션의 후보가 되면 이러한 객체들은 가비지 컬렉터에 의해 메모리를 반환
가비지 컬렉션은 프로그램을 수행하기 위한 여유 메모리가 부족하거나 사용자의 입력을 기다리고 있을 때처럼 프로그램이 활동하지 않을 때 메모리 반환작업을 수행

가비지 컬렉션의 특징
1. Automatic memory manager(자동 메모리 관리) 라고 부르기도 함.
2. 가비지 컬렉션은 프로그래머에 의해 구현 될 수 없음.
3. 가비지 컬렉션의 대상은 object(객체)이지 reference(참조)가 아니다.
4. 살아있는 스레드가 더 이상 참조되지 않은 객체는 가비지 컬렉션의 대상이 된다.
5. 다른 참조 변수도 참조하기 있는 객체는 가비지 컬렉션의 대상이 아니다.
6. 할당된 메모리를 명시적으로 해제할 수 없다.
7. 가비지 컬렉터가 객체를 어떠한 순서로 정리하는지는 알 수 없다.
8. 가비지 컬렉터가 언제 수행될지 정확히 알 수 없다.
9. 객체에 null이 할당되거나 객체를 더 이상 참조하지 않게 되었을 때 가비지 컬렉션의 대상이 됨

가비지 컬렉션 작업은 자바가상머신이 알아서 처리하지만 프로그래머가 직접 가비지 컬렉션 작업을 요청 할 수 있다.

가비지 컬렉션 요청 방법

System.gc()

Runtime.getRuntime().gc()

finalize() 메소드는 객체가 소멸될 때 자바가상머신에 의해 호출되므로 이 메소드 내에서 파일이 열려있는지를 확인하고 열렸을 경우에는 닫는 작업을 수행하면 된다. 이 메소드는 각 객체마다 정확히 한번만 수행된다. finalize() 메소드는 protected 제한자로 선언되어 있으며 Throwable 예외를 발생시킨다.

finalize() 메소드를 오버라이딩 하여 사용



-------------------------------------------------

인증서 오류는 결국 해결 못함.


서버 시간도 맞추어 보고, 인증서 관련 옵션도 바꾸어 보았지만.
회사 프락시를 거치기 때문에 해결될 수 없는 문제도 있는가 보다.
뭐, 돈 받고 일하니 회사가 스니핑 해도 할말은 없다만.

IT 엔지니어들이 서로가 서로를 지키지 못하고,
회사가 어려워지면 서로 자를 구실을 만들려고
관련 자료를 만드느라 분주한 모습이 안타까울 뿐이다.

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...