sábado, 24 de agosto de 2013

perguntas exames SCJP - Entendendo Pilha e Heap

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