10 / 11 Curso de Java do zero | fundamentos e linguagem · 32 min de vídeo · atualizado em 13 out 2026

Entendendo o coletor de lixo do Java: heap, stack e garbage collector

Resumo curto de heap, referências e alcançabilidade para acompanhar a aula sobre garbage collector.

Fernanda Kipper
Fernanda Kipper
Próxima aula →

Apoio escrito: o que ainda está alcançável?

Este apoio reexplica heap, referências e alcançabilidade com uma lista que mantém um array vivo. Objetos e arrays ficam na heap. Variáveis locais fazem parte da execução de um método e podem guardar referências a esses objetos. O garbage collector recupera objetos que não podem mais ser alcançados; ele não sabe se um objeto ainda é útil para a regra do programa.

import java.util.ArrayList;
import java.util.List;

public class Referencias {
    public static void main(String[] args) {
        List<byte[]> historico = new ArrayList<>();
        byte[] relatorio = new byte[1024];
        historico.add(relatorio);

        relatorio = null;
        System.out.println(historico.get(0).length); // 1024

        historico.clear();
        System.out.println(historico.size()); // 0
    }
}

Atribuir null remove a referência local, mas a lista ainda alcança o array. Depois de clear, se não houver outra referência, o array fica elegível para coleta. Elegível não significa coletado naquele instante: a JVM decide quando executar a coleta.

Material complementar da Fernanda

  • Guia avançado: Garbage Collector — Relacione stack, heap e alcançabilidade ao exemplo desta aula. Atribuir null a uma variável não basta se outra referência alcançável retiver o objeto. O GC não impede todos os vazamentos nem garante memória infinita.

Pratique com /aprender

Copie o comando e cole no chat para iniciar uma prática guiada:

/aprender Pratique heap, referências e garbage collector em Java 21. Mostre um grafo pequeno de objetos e peça que eu diga o que continua alcançável após remover uma referência. Explique a diferença entre elegível para coleta e coletado. Uma pergunta por vez, sem antecipar a resposta.
A SEGUIR · AULA 11

Java avançado: programação paralela com threads

103 min de vídeo · Resumo curto de tarefas, threads e estado compartilhado para acompanhar a aula de programação paralela.

Ir para a aula 11 →