런타임 중에 개체 object1
이 개체 object2
을 참조하고 있습니다. 그러나 object1
에는 참조가 없습니다.개체의 Java GC가 "체인"이 느슨한 경우
object1
따라서 object2
은 GC로 수집 할 수 있습니까?
예인 경우 - object2
에 대한 참조가 있고이 경우 메모리에서 "자동으로" 이 제거됩니다.
object2
에 대한 참조가 있으므로 (object1
)이며 그 이유는 수집되지 않기 때문입니다. 그렇지만 object1
은 느슨한 것이므로 수집해야합니다.
GC는 어떻게 작동합니까? 그것은 object1
을 수집하나요? 메모리에 "느슨한"원인이 있습니다. 다음 라운드에서 object2
을 수집합니다. 참조되지 않았기 때문에 느슨해 졌기 때문입니다. 또는 object1
을 수집 할 때 object1
과 object2
을 모두 수집합니까?
또 다른 경우는 다음과 같습니다. object1
이 (가) 프로세스를 실행 중입니다. 따라서 GC는이를 만지지 않으며 object2
(참조 번호는 object2
)은 메모리에 으로 남아 있습니다. 하지만 이건 아닐거야. 내가 알기 론, GC는 객체 에 CPU 시간 (?)이 할당되어 있는지 여부를 조회하지 않고 그냥 참조로 가고, 참조가 없다면 이 제거 될 때마다 힙의 오브젝트
GC는이 두 개체에서 어떻게 작동합니까? object1
& object2
이 경우에는 어떻게됩니까?
// ========================================
편집 :
이것은 GC의 특성에 대한 질문입니다. 누구나 "GC는 참조되지 않은 개체를 수집합니다."를 찾을 수 있습니다.
TIA. 모두 object1
및 object2
들이 아니다 "이후 수집 -
'object2'에 대한 다른 _reachable_ 참조가있을 수 있습니다. 그래서'object1'은 수집 될 수 있지만'object2'는 남겨질 것입니다. –