Sobes.tech
Junior — Middle

Como é que o mecanismo de recolha de lixo decide quais os objetos a remover da memória?

sobes.tech IA

Resposta da IA

O coletor de lixo em Java determina quais objetos podem ser removidos com base na sua acessibilidade na memória. Se um objeto não for acessível a partir das referências raiz (por exemplo, da pilha, variáveis estáticas ou registros), ele é considerado lixo e pode ser removido.

Principais mecanismos:

  • Análise de acessibilidade: a JVM rastreia quais objetos são acessíveis através de cadeias de referências a partir das raízes.
  • Coleta de lixo generacional: objetos são divididos em gerações (jovem, antigo), o que otimiza a coleta.
  • Marcação e varredura: primeiro, os objetos acessíveis são marcados, depois os não marcados são removidos.

Dessa forma, o coletor de lixo libera automaticamente a memória removendo objetos aos quais não há referências, prevenindo vazamentos de memória.