2012-06-28 2 views
0

클래스의 인스턴스를 만든 경우 오브젝트의 수명은 얼마나되며 수명주기는 무엇에 달려 있습니까?클래스 라이프 타임의 자바 인스턴스

classA ca = new classA(); 

이 객체가 런타임만큼 오래 가지 않는다 : 예를 들어

난과 같이 내 주요 클래스의 인스턴스를 ClassA가?

답변

1

음, 개체가 참조 자체를 가지고있는 기간에 따라 다릅니다 (자세한 내용은 ref 형식 참조). 예를 들면.

classA ca = new classA(); 
classA ca = new classB(); //first reference assigned to some other object 

이제 첫 번째 개체가 가비지 수집 대상이며 다음 GC주기에서 삭제됩니다.

+0

GC에 대해 읽었으므로 이제 개체의 수명주기를 알고 있습니다. 고맙습니다. –

0

살아있는 레퍼런스가 존재하는 한, 힙에 (참조없이) 아직 존재할 수 있지만 가비지 수집 될 준비가되었습니다. 따라서 GC가 다음에 실행될 때 발견 할 것입니다 이때 및 GC 그것이 너무 죽은

를 ClassA의 인스턴스는 블록 생성하고 확실까지 컨트롤에 라이브된다 ca에 대한 참조가 도착

{ 
    classA ca = new classA(); 
} 

그 블록은 GC로 수집 할 준비가되었습니다.

+0

이 객체가받을 수 있습니다 널 (null)이 인스턴스 변수를 가리키는 하나의 참조가 ... 그리고. "GC 자격"과 "가비지 수집"사이에는 중요한 구별이 있습니다. –

+0

@Joachim Sauer definately –

0

Java에서 인스턴스/개체는 도달 가능한 참조가있을 때까지 존재합니다. 새로 생성 된 객체로

classA ca = classA(); 

가능성이 조금 더 가비지 컬렉션

ca = null;