Entendendo Pilha e Heap
Pilha:
variáveis locais ou "de método" e valores de tipos
primitivos. Note qu são apenas as variáveis que ficam na pilha e
não os objetos.
Heap: qualquer variável de instância (seja primitiva ou objeto) e qualquer Objeto (inclusive array, de primitivo ou não, pois qualquer array é um Object) declarado em qualquer ponto do programa.
Ex.:
public
class
Class
{
//a
variável
heapcavalo
é de
instância
e, portanto,
será
armazenada
no heap
//e
o objeto
Cavalo
criado
será
armazenado
no heap
Cavalo
heapcvalo
= new
Cavalo();
//a
variável
heapCavalos
é de
instância
e, portanto,
será
armazenada
no heap
//e
o array Dog[] é um
objeto
e, portanto,
será
armazenado
no heap
Cavalo[]
heapCavalos
= new
Cavalo[]{
new
Cavalo().
New
Cavalo().
new
Cavalo()
};
public
void
rugir()
{
//a
variável
stackCavalo
é local e, portanto,
será
armazenada
na
pilha.
//Mas
o objeto
Cavalo
criado
será
armazenado
no heap.
Cavalo
stackCavalo
= new
Cavalo();
System.out...(stackCavalo
+ "
está rugindo...")
;
}
public
void
realizarSurubaCanina()
{
//a
variável
stackDogs é local e, portanto,
será
armazenada
na
pilha.
//Mas
o array Dog[] criado
é um
objeto
e, portanto,
será
armazenado
no heap.
Cavalos[]
stackCavalos
= new
Cavalos[]{
new
Cavalo().
new
Cavalo().
new Cavalo()
};
System.out...("
apostem
nos
"
+ stackCavalos
+ "
por
que eles estao correndo...");
}
}
Nenhum comentário:
Postar um comentário