Sobes.tech
Junior — Middle

Como é que o mecanismo de recolha de lixo liberta a memória não utilizada em Java?

sobes.tech IA

Resposta da IA

No Java, o mecanismo de recolha de lixo (Garbage Collector, GC) liberta automaticamente a memória ocupada por objetos que já não são utilizados pelo programa.

Princípio de funcionamento:

  1. Detecção de acessibilidade dos objetos: O GC rastreia objetos aos quais não há ligações de partes ativas do programa (por exemplo, da pilha de chamadas ou variáveis estáticas).
  2. Marcação: Todos os objetos acessíveis são marcados como vivos.
  3. Limpeza: Os objetos não marcados como vivos são considerados lixo e a sua memória é libertada.

O Java usa diferentes algoritmos de GC (por exemplo, Mark-and-Sweep, Generational GC), que otimizam o trabalho com a memória e minimizam as pausas na execução da aplicação.

Exemplo: se um objeto é criado dentro de um método e, após sair do método, não há referências a ele, o GC libertará com o tempo a memória ocupada por esse objeto.