Sobes.tech
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:

  1. 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.
  2. Detecção de lixo: Os objetos sem referências são considerados lixo e podem ser eliminados.
  3. 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.