Declara uma classe que não pode ser instanciada ou um método sem corpo, que deve ser implementado pelas subclasses.
public abstract class Animal { abstract void emitirSom(); }As 53 palavras reservadas do Java, o que cada uma faz e um exemplo de uso.
Declara uma classe que não pode ser instanciada ou um método sem corpo, que deve ser implementado pelas subclasses.
public abstract class Animal { abstract void emitirSom(); }Verifica em tempo de execução se uma condição é verdadeira; se não for, lança AssertionError. Precisa ser habilitado com a flag -ea.
assert saldo >= 0 : "saldo não pode ser negativo";
Tipo primitivo lógico que armazena apenas true ou false.
boolean ativo = true;
Interrompe imediatamente a execução de um laço (for, while, do) ou de um case dentro do switch.
for (int i = 0; i < 10; i++) { if (i == 5) break; }Tipo primitivo inteiro de 8 bits com sinal, que vai de -128 até 127.
byte idade = 25;
Define cada um dos valores possíveis testados dentro de um switch.
switch (dia) { case 1: System.out.println("Domingo"); break; }Captura e trata uma exceção lançada dentro do bloco try correspondente.
try { ler(); } catch (IOException e) { e.printStackTrace(); }Tipo primitivo que guarda um único caractere Unicode de 16 bits.
char inicial = 'J';
Declara uma classe, o molde que define os atributos e métodos dos objetos.
public class Pessoa { String nome; }Palavra reservada pela linguagem, mas sem nenhuma função: não pode ser usada como identificador. Para constantes usa-se final.
// inválido: const int X = 10; → correto: final int X = 10;
Pula o restante da iteração atual do laço e segue direto para a próxima.
for (int i = 0; i < 10; i++) { if (i % 2 == 0) continue; }Define o caso padrão de um switch quando nenhum case combina; também marca um método com implementação padrão em uma interface.
switch (x) { default: System.out.println("outro"); }Inicia o laço do-while, que executa o bloco pelo menos uma vez antes de testar a condição.
do { i++; } while (i < 10);Tipo primitivo de ponto flutuante com 64 bits e dupla precisão.
double preco = 19.99;
Define o bloco executado quando a condição do if é falsa.
if (idade >= 18) votar(); else aguardar();
Declara um tipo enumerado: um conjunto fixo e nomeado de constantes.
enum Cor { VERMELHO, VERDE, AZUL }Indica que uma classe herda de outra (ou que uma interface estende outra interface).
class Cachorro extends Animal { }Literal booleano que representa o valor lógico falso. É reservado, mas não é uma palavra-chave comum.
boolean encontrado = false;
Impede alterações: variável vira constante, método não pode ser sobrescrito e classe não pode ser herdada.
final double PI = 3.14159;
Bloco executado sempre depois do try, com ou sem exceção. Usado para liberar recursos.
try { usar(); } finally { fechar(); }Tipo primitivo de ponto flutuante com 32 bits e precisão simples.
float altura = 1.75f;
Cria um laço de repetição com inicialização, condição e incremento (ou percorre uma coleção, no formato for-each).
for (int i = 0; i < 10; i++) { }Palavra reservada pela linguagem, mas sem nenhuma função: Java não possui desvio incondicional. Use break ou continue com rótulo.
// inválido: goto fim; → correto: break rotulo;
Executa um bloco de código apenas quando a condição booleana for verdadeira.
if (saldo > 0) { sacar(); }Indica que uma classe se compromete a implementar os métodos de uma ou mais interfaces.
class Item implements Comparable<Item> { }Traz classes ou membros estáticos de outro pacote para o arquivo, evitando escrever o nome completo.
import java.util.ArrayList;
Operador que testa se um objeto é de determinado tipo, devolvendo true ou false.
if (obj instanceof String s) { System.out.println(s.length()); }Tipo primitivo inteiro de 32 bits com sinal, de -2.147.483.648 a 2.147.483.647.
int contador = 0;
Declara um contrato com métodos que as classes implementadoras devem fornecer.
interface Veiculo { void acelerar(); }Tipo primitivo inteiro de 64 bits com sinal, para números muito grandes.
long populacao = 8000000000L;
Marca um método implementado em código nativo (C/C++) e acessado através da JNI.
public native void desenhar();
Cria uma nova instância de uma classe ou um novo array, alocando memória e chamando o construtor.
Pessoa p = new Pessoa();
Literal que representa a ausência de referência: a variável não aponta para objeto nenhum.
String nome = null;
Declara a qual pacote a classe pertence; deve ser a primeira instrução do arquivo.
package br.edu.modelo;
Modificador de acesso mais restritivo: o membro só é visível dentro da própria classe.
private String senha;
Modificador de acesso que libera o membro para o mesmo pacote e para as subclasses.
protected int idade;
Modificador de acesso mais aberto: o membro é visível de qualquer lugar do programa.
public void salvar() { }Encerra o método e, opcionalmente, devolve um valor para quem o chamou.
return total * 1.1;
Tipo primitivo inteiro de 16 bits com sinal, de -32.768 a 32.767.
short ano = 2026;
Faz o membro pertencer à classe, e não a cada objeto, sendo compartilhado por todas as instâncias.
public static void main(String[] args) { }Força os cálculos de ponto flutuante a seguirem o padrão IEEE 754, garantindo o mesmo resultado em qualquer plataforma.
public strictfp class Calculo { }Referência à superclasse: chama o construtor ou acessa membros da classe-mãe.
super.emitirSom();
Escolhe entre vários caminhos comparando uma expressão com diversos valores (case).
switch (opcao) { case 1: sacar(); break; default: sair(); }Garante que apenas uma thread execute o bloco ou método por vez, evitando condições de corrida.
public synchronized void depositar(double v) { }Referência ao próprio objeto atual; também serve para chamar outro construtor da mesma classe.
this.nome = nome;
Lança explicitamente uma exceção a partir do ponto atual do código.
throw new IllegalArgumentException("valor inválido");Declara na assinatura do método quais exceções verificadas ele pode propagar.
public void ler() throws IOException { }Marca um atributo que deve ser ignorado na serialização do objeto.
private transient String senha;
Literal booleano que representa o valor lógico verdadeiro. É reservado, mas não é uma palavra-chave comum.
boolean ligado = true;
Abre um bloco monitorado onde exceções podem ocorrer e ser capturadas por catch ou finally.
try { dividir(10, 0); } catch (ArithmeticException e) { }Indica que o método não devolve nenhum valor.
public void imprimir() { System.out.println("oi"); }Garante que a variável seja sempre lida e escrita na memória principal, tornando-a visível a todas as threads.
private volatile boolean rodando = true;
Repete um bloco enquanto a condição for verdadeira, testando antes de cada execução.
while (i < 10) { i++; }