Parece uma pergunta simples, mas depois de muita leitura sobre o assunto, ainda não encontrei uma resposta definitiva (talvez por ser tão simples).
Minha pergunta é a seguinte: quando um coletor de lixo compacta objetos na pilha, como as referências a esses objetos na pilha são atualizadas? Eu posso pensar em duas soluções possíveis:
- Percorra a pilha (e as referências na pilha) e atualize a referência para apontar para o novo local do objeto. Em uma analogia à mudança, seria como enviar uma carta para qualquer pessoa que possua seu endereço e pedir que atualizem o catálogo de endereços com o seu novo endereço.
- Forneça algum tipo de tabela de consulta. Seria como deixar um endereço de encaminhamento na estação de correios local.
Os coletores de lixo usam predominantemente um desses dois métodos? Algum outro método? Ambos?