Dúvida em Pilha e Heap

Olá Javaneses?!

Estou estudando em um livro de Java sobre pilha e heap, acontece que esta parte é muito teória e não estou conseguindo absorver o que o autor está realmente querendo passar.

Até agora o que eu entendi foi que na pilha fica armazenado os métodos e as váriaveis e no heap os objetos.

E as váriavéis de instância onde ficam?

Alguem pode me explicar melhor no português claro?

Se alguém tiver alguma video aula, material que aborda este assunto a fundo desde já agradeceria a colaboração.

Abraços

Amigo,

As variáveis de intstância (assim como o próprio objeto) são armazenados na heap,.

Abraços
<><

A idéia é a seguinte: na pilha, ficam as variáveis que o método está manipulando no momento. Quando você chama um método, a VM coloca na pilha os argumentos desse método. Tipos primitivos são passados por valor, portanto vão direto para a pilha. Objetos são passados por referência, então é a referência que é empilhada. O que está na pilha não passa por garbage collection. Simplesmente, quando o método retorna, a pilha encolhe, e o valor daquelas variáveis se perde.

Quando você cria um objeto, a VM aloca um pedaço de memória para ele na heap. Esse pedaço de memória vai armazenar tipos primitivos e referências, que nada mais são que as variáveis de instância daquele objeto.

Cara, eu poderia perder um tempão te explicando isso aqui e não conseguir passar o conhecimento, porque realmente é uma idéia bem chatinha pela sequencia de fatos que ocorrem… eu te indico o Use a Cabeça! Java da Katty… cara, lá tem uma explicação infalível, com deseninho e tudo mais do que ocorre na sequencia… se não puder comprar, vê se consegue emprestar… Falows :wink:

essa parte de pilha, fila, lista etc.
faz parte da estrutura de dados
é uma coisa bem teórica, independente de linguagem
não sei o que vc quer
se quer estudar java recomendo que mude um pouco
livros de estrutura de dados não vão te ensinar java
vão te ensinar varias estruturas como arvore binária, arvore avl,
lista etc.
espero ter ajudado
abraço!