Palavra-chave em Java

Existem 51 palavra-chave em java, que possuem significados muito específicos e não podem ser usadas como identificadores no código da aplicação. Além disso, 16 palavras-chave contextuais são tratadas como palavras-chave quando encontradas em um contexto específico. Os programadores não devem usar essas palavras-chave para nada além do que deveriam ser.

O que é uma palavra-chave em Java?

O compilador reconhece as palavras-chave em java, como palavras reservadas predefinidas que possuem um significado muito específico. Não é possível utilizá-las como variáveis, métodos, classes ou quaisquer outros identificadores.

Na instrução a seguir,  int é uma palavra-chave que indica que a variável  idade  é do tipo inteiro (inteiro complemento de dois com sinal de 32 bits). Não podemos usar int como nome de variável, etc. Usar palavras-chave como identificadores resultará em erros de compilação .

int idade;
  1. As palavras-chave const e goto são reservadas, embora não sejam usadas atualmente.
  2. true, false, e null podem parecer palavras-chave, mas são literais; não podemos usá-los como identificadores em nossos programas.
  3. strictfp foi adicionado no JDK 1.2.
  4. assert foi adicionado no JDK 1.4.
  5. enum foi adicionado no JDK 1.5.
  6. Versões posteriores de recursos como classes seladas, registros e JPMS adicionaram mais algumas palavras-chave contextuais.

Palavra-chave em Java

As 51 palavras, que sao palavra-chave em java, a seguir não podem ser usadas como identificadores.

Palavra-chaveDescrição
abstractUsado com classes e métodos. Uma classe abstrata não pode ser instanciada. Um método abstrato está incompleto sem o corpo e deve ser implementado na classe filha para criar uma instância da classe filha.
assertnos permite testar as suposições sobre nosso programa.
booleanrepresenta apenas um dos dois valores possíveis, ou seja, ou  true ou  false.
breaké usado para encerrar  forwhile ou  do-while loop. Também pode ser usado para encerrar uma  switch instrução.
bytepode armazenar números inteiros de -128 e 127.
caserepresenta um bloco de código em instruções switch .
catchsegue o bloco try e lida com as exceções verificadas lançadas pelo bloco try e quaisquer possíveis exceções não verificadas.
charusado para armazenar um único caractere.
classdefine uma classe.
consté uma palavra-chave reservada para valores constantes. Use final em vez disso.
continuepula a iteração atual de um loop  forwhile ou  do-while e salta para a próxima iteração.
defaultusado para especificar o bloco padrão em uma instrução switch e métodos padrão em interfaces funcionais.
dousado para conter as instruções a serem executadas repetidamente até que a condição na instrução while seja verdadeira .
doubleusado para declarar uma variável que pode conter números de ponto flutuante de 64 bits.
elseusado para indicar os ramos alternativos em uma instrução if .
enumé um tipo cujos campos consistem em um conjunto fixo de constantes.
extendsusado para estender uma classe.
finalusado com variáveis ​​de classe, métodos ou classes. Uma variável final não pode receber outro valor após ter sido inicializada. Um  método final  não pode ser substituído na classe filha. Nenhuma classe pode subclassificar uma  classe final  .
finallycontém código a ser executado sempre que um bloco try-catch for concluído – com ou sem erros.
floatusado para declarar uma variável que pode conter um número de ponto flutuante de 32 bits.
forinicie um loop para executar um conjunto de instruções repetidamente quando uma condição for verdadeira . Se o número de iterações for conhecido, é recomendado usar o loop for .
gotoAtualmente, não está em uso.
ifusado para escrever declarações condicionais.
implementsusado para implementar uma interface.
importimporte um pacote, classe ou interface para a classe atual.
instanceofVerifica se um objeto é uma instância de uma classe ou interface específica.
intusado para armazenar um valor inteiro de 32 bits.
interfacedeclara uma interface.
longusado para armazenar um valor inteiro de 64 bits.
nativeindica código nativo (específico da plataforma).
newcria um novo objeto da classe especificada.
packagedeclara um pacote para armazenar as classes relacionadas.
privatemodificador de acesso para indicar que um método ou variável pode ser acessado apenas na classe em que é declarado.
protectedmodificador de acesso para indicar que uma classe, método ou variável pode ser acessada apenas no pacote atual ou herdada fora do pacote atual.
publicmodificador de acesso para indicar que uma classe, método ou variável está acessível em qualquer lugar.
returnusado para retornar de um método quando sua execução for concluída.
shortusado para armazenar um valor inteiro de 16 bits.
staticindica que uma variável ou método pertence ao objeto da classe , não às instâncias individuais dessa classe.
strictfpusado para restringir os cálculos de ponto flutuante para garantir a portabilidade.
superusado para se referir a objetos de classe pai.
switchajuda no fornecimento de vários caminhos de execução possíveis para um programa.
synchronizedmarca um bloco ou método como uma seção crítica onde um e apenas um thread está sendo executado por vez.
thisusado para se referir ao objeto atual.
throwusado para lançar explicitamente uma exceção de um método ou construtor. 
throwsusado para declarar a lista de exceções que podem ser lançadas por aquele método ou construtor.
transientusado em atributos/variáveis ​​de classe para indicar que o processo de serialização desta classe deve ignorar tais variáveis.
trycontém o código do aplicativo que deverá funcionar em condições normais.
voidespecifica que um método não deve ter um valor de retorno.
volatileindica que um atributo não é armazenado em cache localmente e é sempre lido na “memória principal”.
whileexecuta continuamente um bloco de instruções até que uma condição específica seja avaliada como  verdadeira
_ (Underscore)adicionado no Java 9, para evitar a gravação de sublinhados como um lambda, método ou parâmetro formal de captura não utilizado.

Palavras-chave contextuais

Dependendo do contexto em que aparecem, podemos interpretar as 16 palavras a seguir como palavras-chave ou outros tokens.

Palavra-chaveDescrição
exportsusado para importar e exportar os módulos.
moduleusado para declarar módulos.
non-sealedusado para definir classes e interfaces seladas.
openusado para declarar módulos.
opensusado para importar e exportar os módulos.
permitsusado para definir classes e interfaces seladas.
providesusado para importar e exportar os módulos.
recordusado para definir novos
requiresusado para importar e exportar os módulos.
sealedusado para definir classes e interfaces seladas.
tousado para importar e exportar os módulos.
transitivereconhecido como um terminal em um  RequiresModifier .
usesusado para importar e exportar os módulos.
varusado para inferir tipos de variáveis ​​locais.
withusado para importar e exportar os módulos.
yieldusado para gerar um valor em uma instrução switch .
  1. Declarar módulos: No Java, usamos os module e open para declarar módulos.
  2. Importar e exportar módulos: No Java, utilizamos exports, opens, provides, requires, to, uses e with para importar e exportar os módulos.
  3. Terminal em um RequiresModifier: Reconhecemos o transitive como um terminal em um RequiresModifier.
  4. Inferir tipos de variáveis locais: No Java, usamos var para inferir tipos de variáveis locais.
  5. Gerar um valor em uma instrução switch: Utilizamos yield para gerar um valor em uma instrução switch.
  6. Definir novos tipos de registro: Em Java, empregamos record para definir novos tipos de registro.
  7. Definir classes e interfaces seladas: No Java, usamos non-sealed, permits e sealed para definir classes e interfaces seladas.

Não é possível aprender sobre todas as palavras-chave em uma única página. Aprenderemos sobre cada palavra-chave Java em seu tutorial dedicado.