2013-05-02 1 views
1

누출되지 않는 응용 프로그램을 작성하고 싶습니다. 따라서이를 피하기 위해 최선의 방법을 찾고 있습니다.Objects 우수 사례

항상 결과 세트 및 연결을 닫습니다. 하지만 대개 작업을 마치면 내 물건을 무효화하지 않고 GC에 맡겨 정리합니다.

이것은 나쁜 습관입니까? 내가 ArrayList와 Interators를 무효화해야합니까?

또한 메모리를 손상시키지 않고 오브젝트를 처리하는 다른 방법이 있습니까?

+1

http://stackoverflow.com/questions/449409/does-assigning-objects-to-null-in-java-impact-garbage-collection – Drogba

답변

1

로컬 변수를 완료 할 때이를 무효화 할 필요가 없습니다. Java 컴파일러는 객체를 언제 폐기할지 결정할만큼 똑똑합니다.

다른 한편으로, 클래스 멤버 변수는 다른 방식으로 고려할 필요가 있습니다. 컬렉션이 다른 개체 안에있는 개체를 보유하고 있으면 일단 완료되면 컬렉션을 지우는 것이 좋습니다. 이는 외부 오브젝트의 수명이 콜렉션 안의 오브젝트 수명보다 현저히 긴 경우에만 중요합니다. 그렇지 않으면 가비지 수집기가 코드의 도움없이 개체를 수집하는 것을 처리합니다.

0

효과적인 Java 항목 6 "쓸모없는 객체 참조 제거"를 읽는 것이 좋습니다. 문제의 여러 측면에 대해 설명합니다. 그러나 기본 규칙은 입니다. 객체 참조를 없애는 것은 표준이 아닌 예외가되어야합니다.