Olá devs,
Quero compartilhar aqui uma dúvida que tive por um tempo e agora obtive maiores esclarecimentos. Esta é uma questão básica e mesmo que alguns saibam o que cada tipo de variável significa, outros podem não tem convicção do que exatamente são. Estou falando das definições de variáveis explicadas pelo Guilherme: variáveis de classe, locais, de objeto, de instância e atributos de classe.
Variáveis locais - ficam dentro de métodos/construtores.
Variáveis de classe - estas vão dentro da classe, mas fora de qualquer método.
Variáveis de instância - mesmo que variável de classe.
Variável de objeto - mesmo que variável de classe/variável de instância.
Atributo de objeto - mesmo que variável de classe/variável de instância/variável de objeto.
Variável de referência - estas recebem uma instância de classe.
As variáveis que geralmente são confundidas são as de instância e as de referência, pois como o nome já diz, variável de instância dá a entender que é uma instância de classe.
Particularmente procuro usar somente as expressões variáveis locais, variáveis de classe e variáveis de referência pois são auto-explicativas.
Apesar de ser um lembrete simples, espero que este post sirva para quem está estudando java e buscando a certificação, assim como eu.