2012-02-17 3 views

답변

11

간단한보기에서 JVM은 Tracing Garbage Collection, Mark-and-Sweep을 사용합니다. 순환 참조는 "기본"수준에서 시작하여 거기에서 도달 할 수있는 요소를 찾기 위해 참조를 통해 작동하기 때문에 이러한 알고리즘의 올바른 동작을 방해하지 않습니다. 도달 할 수없는 사람은 수집/해제 할 수 있습니다.

JVM 가비지 수집기는 일반적으로 이보다 훨씬 복잡하며 일을 더 빨리 수행 할 수있는 많은 최적화가 있습니다. 즉, 마크 앤 스위프 (mark-and-sweep) 알고리즘의 일반적인 특성은 사실입니다.

3

예. JVM의 가비지 컬렉터는 순환 참조를 처리 할 수 ​​있습니다.

JVM에서 사용하는 가비지 수집기는 참조 계산 가비지 수집기가 아닙니다. 대신, 여전히 액세스 할 수있는 참조 (모든 스레드 스택 또는 정적 참조에 대한 참조)에서 추적하여 가비지를 찾습니다.