DEV Community

Cover image for Garbage Collector em Java: o que é e por que importa?
Eduardo Silva
Eduardo Silva

Posted on

Garbage Collector em Java: o que é e por que importa?

Java tem um Garbage Collector (GC): um processo automático que libera a memória ocupada por objetos que não são mais usados no programa.

Você não precisa gerenciar memória manualmente como em C/C++. O GC identifica objetos “mortos” (sem referências) e limpa eles da memória. Isso evita vazamentos de memória e melhora a performance — mas também pode causar pausas no programa (GC pauses).

Quando isso acontece?
O GC é acionado automaticamente quando a JVM precisa de memória. Você também pode chamar System.gc(), mas o Java só vai tentar rodar o GC — não é garantido.

Um exemplo bacanudo seria esse:

public class GarbageCollectorDemo {
    public static void main(String[] args) {
        // Criando um objeto
        MyObject obj1 = new MyObject("Objeto 1");

        // Perdendo a referência ao objeto — agora só o GC pode limpar
        obj1 = null;

        // Sugerindo que o Garbage Collector rode
        System.gc();

        System.out.println("Final do programa");
    }
}

class MyObject {
    private String name;

    MyObject(String name) {
        this.name = name;
    }

    // Método chamado pelo GC antes de destruir o objeto
    @Override
    protected void finalize() {
        System.out.println(name + " foi coletado pelo Garbage Collector!");
    }
}
Enter fullscreen mode Exit fullscreen mode

Dicas rápidas:

  • Evite criar objetos desnecessários.
  • Use profiling para identificar vazamentos de memória.
  • Ajuste as opções da JVM para escolher o GC certo para sua aplicação.

Valeu meus Queridos, até a próxima

Top comments (0)