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 № 1Como 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.