Sobes.tech
Junior

O que é heap e stack?

sobes.tech IA

Resposta da IA

Heap e Stack são duas áreas de memória usadas pelos programas para armazenar dados.

  • Stack (pilha) é uma área de memória onde são armazenadas variáveis locais, parâmetros de funções e endereços de retorno. Funciona pelo princípio LIFO (último a entrar, primeiro a sair). Quando uma função é chamada, um bloco é alocado na pilha, e após sua conclusão, é liberado. A pilha tem um tamanho limitado e é gerida automaticamente.

  • Heap (montão) é uma área de memória para a alocação dinâmica de objetos e dados, cujo tamanho pode variar durante a execução do programa. Em Java, os objetos são criados no montão, e o coletor de lixo libera automaticamente a memória não utilizada.

Exemplo:

public void exemplo() {
    int a = 10; // armazenado na pilha
    String s = new String("Olá"); // objeto String criado no montão
}

Aqui, a é uma variável local na pilha, e o objeto String está no montão.