Junior — Middle
Como é que o coletor de lixo detecta que um objeto já não é utilizado e pode ser removido?
sobes.tech IA
Resposta da IA
O coletor de lixo (Garbage Collector) no Android (baseado em JVM ou ART) determina que um objeto não está mais em uso se não houver referências ativas a ele a partir de objetos raiz, como pilhas de threads, campos estáticos, etc.
O processo é aproximadamente assim:
- O coletor começa com os objetos raiz e marca todos os objetos acessíveis por referências.
- Todos os objetos não marcados são considerados inacessíveis e podem ser removidos.
Assim, se um objeto não for acessível a partir do código ativo, ele é considerado lixo e sujeito à coleta.
Isso é chamado de algoritmo de busca em profundidade ou marcação e varredura (mark-and-sweep).