Onde reside uma variável estática?

11 respostas
C

Se as variáveis de instância residem em cada objeto criado no acervo e as variáveis estáticas são compartilhadas, onde residem as variáveis estáticas?

11 Respostas

douglaskd

residem na classe…

acho que é isso

robsonrod

Variáveis de estáticas, são também conhecidas como variáveis de classe. Mudar o valor de uma variável de classe em um objeto membro automaticamente muda o valor para todos os objetos membros.
[]'s

robert.gamma

robsonrod:
Variáveis de estáticas, são também conhecidas como variáveis de classe. Mudar o valor de uma variável de classe em um objeto membro automaticamente muda o valor para todos os objetos membros.
[]'s

Isso quer dizer que variáveis staticas ficam na Heap?

robsonrod

Boa pergunta!

E sim, os estáticos residem no heap.

[]'s

alexandref93

Boa pergunta!

E sim, os estáticos residem no heap.

[]'s

apenas o valor da variavel reside no Heap, correto??? e enquanto a variavel fica na pilha???
ou falei bobagem???

robsonrod

apenas o valor da variavel reside no Heap, correto??? e enquanto a variavel fica na pilha???
ou falei bobagem???

Relaxa, duvida comum, seguinte.

No Heap: Vão os objetos, variáveis de classe (estáticas) e variáveis de instância/objeto (não estáticas).
Na pilha: Variáveis locais, parâmetros de métodos.

Caso o valor da variável estática ficasse na pilha, quando a execução da pilha finalizasse o valor seria perdido, contudo, mesmo com o encerramento de uma pilha a variável ta lá com o valor alterado ou não, lembrando que a variável estática só deixa de existir quando a classe é descarregada/aplicação encerrada.

[]'s

C

As variáveis de instância não-estáticas residem dentro de cada objeto criado, certo? (os objetos, por sua vez residem no heap)

Mas se as variávies estáticas são compartilhadas, tendo um único valor pra classe, onde elas residem?
Procurando ser mais claro: se temos dois objetos da classe Funcionario, classe esta com uma variável estática salario.
Existem DUAS variáveis salário iguais e de alguma forma interligadas vivendo uma em cada objeto? é isso mesmo?

KaosBr

Bom dia,

Na definição, variaveis estaticas, são compartilhadas, entre os objetos instanciados da classe. Porém há um unico valor, sendo acessado, por todos os objetos.

[]s

C

KaosBr:
Bom dia,

Na definição, variaveis estaticas, são compartilhadas, entre os objetos instanciados da classe. Porém há um unico valor, sendo acessado, por todos os objetos.

[]s

Então há uma única variável?
Onde ela vive?
Flutuando sozinha no heap?
Sem habitar qualquer objeto, sendo apenas acessada por eles?

KaosBr

Boa noite,

R: Sim.

R: Ela fica, alocada, no heap.

R: Não, ela pertence, a classe.

R: Sim, uma variável de classe, no caso do tipo “static”, pertence a classe. E, pode ser, acessada e/ou manipulada, informando o nome da classe, seguida de, um ponto. Ex: MinhaClasse.valorDoTipoEstatico

Nota: Variaveis de classe, podem vir acompanhadas, da instrução: final. Nesse caso, podem apenas, ser acessadas.

[]s

C

Obrigado pela paciência Kaos.
Ficou bem mais claro na minha cabeça agora. =]

Criado 15 de outubro de 2010
Ultima resposta 21 de out. de 2010
Respostas 11
Participantes 6