Consumo de memoria

2 respostas
M

Falae galera to com um dúvida, seguinte estou fazendo um sistema e tem 23 janelas … e instanciei as janelas automaticamente ja na janela principal
exemplo

Janela1 janela1 = new Janela1();

Janela2 janela2 = new Janela2();

Janela3 janela3 = new Janela3();

Janela4 janela4 = new Janela4();

Janela5 janela5 = new Janela5();



e no menu fiz as chamadas das janelas quando o usuario clickar no botao

cadastro por exemplo: janela1.show();

até ai blza agora gostaria de saber se assim consome mais memoria do que se eu fizesse em cada evento do botao

Janela1 janela1 = new Janela1();
janela1.show();

porque assim as janelas q nao fossem usadas nao seriam instanciadas eai oq me dizem?

2 Respostas

ViniGodoy

Com certeza.

Você pode usar uma técnica chamada Lazy Initialization.

basicamente é fazer um método:

public void getJanela1() { if (janela1 == null) { janela1 = new Janela1(); //Restante da inicialização da janela } return janela1; }

Depois, no evento do botão, basta fazer:
getJanela1().setVisible(true);

E a janela só será criada a primeira vez que for usada. Tem outra vantagem. O tempo de inicialização do programa diminui também, pois o Java não tem que se incomodar em criar todas as janelas logo no início. Apesar de que, você ganha um pequeno tempo na primeira vez que abre a janela (mas geralmente, é pequeno o suficiente para o usuário não se incomodar).

M

pode crer vini tinha pensado assim como tu falo em criar um metodo vlw pela dica brother :slight_smile:

Criado 1 de abril de 2007
Ultima resposta 1 de abr. de 2007
Respostas 2
Participantes 2