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.