2009-07-08 2 views
0
class Stage 
{ 

    Actor act1 = new Actor(); 
    Actor act2 = new Actor(); 
    Actor act3 = new Actor(); 

} 

Stage stg = new Stage(); 

가비지 수집은 Java에서이 시나리오에서 어떻게 동작합니까?내부 개체에 대한 가비지 수집

stg = null; 

세 개체가 act1, act2act3 또한 쓰레기 수집받을를 창조 할 것인가?

답변

0

각 개체의 참조 횟수가 0 일 때 GC가 모두 개체를 수집합니다.

1

예.

가비지 수집기가 실행되면 이전 개체에 대한 참조가 사라지고 정리 된 것을 볼 수 있습니다. 다음 번에 실행하면 다른 세 개의 객체를 참조하지 않고 아무것도 정리하지 않습니다.

개념적으로, 어쨌든; 대부분의 가비지 컬렉터가 실제로 사용하는 것보다 조금 더 똑똑하고 한 번에 사용할 수 있다고 확신합니다. 정확한 메커니즘은 다양합니다.

+0

그래서 나는 특별히 내부 개체를 null로 설정할 필요가 없다는 것을 의미합니다. 그들은 자동으로 handeled됩니다. 감사합니다. – krisp

+0

C#에 따라. 객체를 null로 설정하면 (자), 그것이 없어지는데 걸리는 시간이 길어집니다. –

0

더 이상 참조가 없으면 가비지 수집이됩니다. 첨부 된 EventListener을 외부에서 제거하는 것을 잊지 마십시오 (참조 번호로도 계산되므로 weak-reference을 사용하지 않는 한).