Java/Identificadores

Identificador é o nome que utilizamos para representar as variáveis, classes, objetos, etc. Por exemplo, na Matemática utilizamos um nome para as incógnitas (x, y, z, etc.) que é o identificador daquela incógnita.
Utilizamos, em Java, as seguintes regras para criação do identificador:
  1. não pode ser uma palavra-reservada (palavra-chave);
  2. não pode ser true nem false - literais que representam os tipos lógicos (booleanos);
  3. não pode ser null - literal que representa o tipo nulo;
  4. não pode conter espaços em brancos ou outros caracteres de formatação;
  5. deve ser a combinação de uma ou mais letras e dígitos UNICODE-16. Por exemplo, no alfabeto latino, teríamos:
    • letras de A a Z (de \u0041 a \u005a);
    • letras de a a z (de \u0061 a \u007a);
    • sublinha _ (\u005f);
    • cifrão $ (\u0024);
    • dígitos de 0 a 9 (de \u0030 a \u0039).
Observação 01: caracteres compostos (acentuados) não são interpretados igualmente aos não compostos (não acentuados). Por exemplo, História e Historia não são o mesmo identificador.
Observação 02: letras maiúsculas e minúsculas diferenciam os identificadores, ou seja, a é um identificador diferente de A, História é diferente de história, etc.

Alguns exemplos de identificadores editar

X
abóbora
άγγελος
carro1
carro_1

Palavras-chave editar

Em programação, palavras-chave, ou palavras reservadas, são as palavras que não podem ser usadas como identificadores, ou seja, não podem ser usadas como nome de variáveis, nome de classes, etc. Estas palavras são assim definidas ou porque já têm uso na sintaxe da linguagem ou porque serão usadas em alguns momento, seja para manter compatibilidade com versões anteriores ou mesmo com outras linguagens. No caso do Java temos as seguintes palavras-chave:
abstract continue for new switch
assert(3) default goto(1) package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum(4) instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp(2) volatile
const(1) float native super while
null

(1) sem uso na linguagem
(2) somente a partir da versão 1.2
(3) somente a partir da versão 1.4
(4) somente a partir da versão 5.0