/ / Qual é a diferença entre variáveis ​​de classe e variáveis ​​de membro em Java - java, variáveis

Qual é a diferença entre variáveis ​​de classe e variáveis ​​de membro em Java - java, variáveis

Não há muito a explicar. O título é suficiente para explicar a questão. Eu tenho isso em uma entrevista hoje.

What are class variables and member variables in Java?

Obrigado!

Respostas:

3 para resposta № 1

Como Zhuinden disse que eles provavelmente significavamvariáveis ​​em vez de variáveis ​​de classe. Para variáveis ​​de membro, uma instância da classe é necessária para acessar a variável. Por exemplo, se eu tivesse uma classe Foo, e tivesse uma variável de membro int bar, a única maneira de acessá-la seria fazendo algo como

Foo foo = new Foo();
doSomething(foo.bar);

No entanto, se eu tiver bar era uma variável estática, isso significa que eu posso acessá-lo mesmo que eu não tenha uma instância do objeto. Eu iria acessá-lo assim:

doSomething(Foo.bar)

sem ter que criar uma instância de Foo.

Vejo Aqui


1 para resposta № 2

Uma variável de membro é uma por objeto, cada objeto tem sua própria cópia da variável de instância, enquanto uma variável de classe é uma por Classe, cada objeto dessa classe compartilha a mesma variável de classe.

Uma variável de classe também chamada de variável estáticaé inicializado quando a JVM carrega a classe, provavelmente, toma um exemplo de bloco estático se não houver nenhum método principal em seu programa, enquanto isso não é o caso com suas variáveis ​​de membro.

Variáveis ​​de classe devem ser usadas quando você não quiser copiar para cada instância variáveis ​​de membro devem ser usadas quando você deseja uma cópia separada para cada instância do objeto.

Do ponto de variáveis ​​de classe de coleta de lixoter uma vida longa, pois as variáveis ​​de classe estão associadas à classe e não à instância individual. as variáveis ​​de classe são limpas quando o ClassLoader que mantém a classe descarregada. Isso é muito raro ... enquanto no caso de variáveis ​​de membros elas são limpas quando a instância é limpa. Espero que isto ajude.