Junior — Middle
Pode explicar o princípio de funcionamento do coletor de lixo nas linguagens de programação?
sobes.tech IA
Resposta da IA
O recolhedor de lixo (Garbage Collector, GC) é um mecanismo de gestão automática de memória que liberta a memória ocupada por objetos que já não são utilizados pelo programa.
Princípio de funcionamento:
- Acompanhamento de referências: O GC determina quais objetos estão acessíveis (têm referências do código ativo) e quais não estão.
- Detecção de lixo: Os objetos sem referências são considerados lixo e podem ser eliminados.
- Liberação de memória: O GC liberta a memória ocupada por esses objetos para que possa ser reutilizada.
No Flutter (Dart), o recolhimento de lixo baseia-se na contagem de referências e na limpeza periódica. Funciona em segundo plano e tenta minimizar as pausas na execução da aplicação.
Exemplo:
class MyClass {
String data;
MyClass(this.data);
}
void main() {
MyClass obj = MyClass('Hello');
obj = null; // Agora o objeto MyClass não está acessível e pode ser coletado pelo GC
}
Quando obj se torna null, o objeto MyClass torna-se inacessível e será eliminado pelo recolhimento de lixo.