2010-12-28 4 views
0

"Array_Name [] = NULL"을 사용하면 Java의 가비지 수집기가 나머지 배열을 수집합니까?Java Array Destroy

+2

사소한 점 :'Array_Name [] = NULL'은'Array_Name = null'을 의미하는 것입니다, 그렇습니까? – Mehrdad

+2

정말'arrayName = null'이어야합니다 ... 스타일 역시 중요합니다. –

답변

11

Array_Name이 실제로 처음부터 배열을 참조하고있는 경우에만. 그리고 배열에 대한 다른 참조가없는 경우에만. 그리고 배열의 바깥쪽에있는 어떤 것도 참조하지 않는 배열 요소 만 되찾을 것입니다. 그리고 그것은

:-) 여기에 주변에 점점 기분 때 그렇게 (구문 Array_Name[] = NULL 정말 의미가 없습니다 않는 유일한 것입니다하지만 난 당신 같은 것을 할 거라고 믿고있어 :.

Foo[] Array_Name = new Foo[n]; 
//... 
Array_Name = null; // Note the lowercase "null" 

을 이 일 수 있습니다. 위에서 설명한 조건에 따라 가비지 수집의 적절한 대상이 배열이됩니다.

+3

+1 * ... 자바 코드가 실행될 때 GC가 비 결정적입니다. (즉, GC는 대부분 결정적이지 않습니다.) –

1

위에서 언급 한 Dan의 모든 내용에 동의하지만 실제로 System.gc()를 호출하여 수동으로 가비지 수집을 트리거 할 수 있습니다. 물론 언급 한 바와 같이 이것은 더 이상 다른 것으로 참조되지 않는 객체 만 수집합니다.

+1

System.gc()를 호출하는 것이 좋습니다. –

+0

나는 동의한다, 나는 지금 선택권을 다만 선물하고있다. – Tyler