Menu
Coddy logo textTech

Folha de Consulta Java

Última atualização

Hello World e estrutura do programa

Todo programa Java é executado a partir de um método main dentro de uma classe.

ElementoCódigo
Declaração de classepublic class Main { ... }
Ponto de entradapublic static void main(String[] args) { ... }
Exibir uma linhaSystem.out.println("Hello, World!");
Exibir sem quebra de linhaSystem.out.print("text");
Ler entradaScanner sc = new Scanner(System.in);
Importar uma classeimport java.util.ArrayList;
Comentários// line e /* block */

Tipos de dados

Os primitivos são em minúsculas; suas classes wrapper começam com maiúscula.

TipoDescrição
intInteiro com sinal de 32 bits
longInteiro com sinal de 64 bits
double / floatNúmeros de ponto flutuante
booleantrue ou false
charCaractere Unicode único de 16 bits
byte / shortInteiros de 8 bits / 16 bits
StringTexto imutável (uma classe, não um primitivo)
Integer, Double, BooleanClasses wrapper para primitivos
varTipo local inferido (Java 10+)

Variáveis

OperaçãoSintaxe
Declarar e inicializarint x = 5;
Inferência de tipo (local)var name = "Ada";
Constantefinal double PI = 3.14159;
Concatenação de stringsString s = "Hi " + name;
Converter string para intint n = Integer.parseInt("42");
Converter int para stringString s = String.valueOf(42);
String formatadaString.format("%d items", n)

Controle de fluxo

InstruçãoSintaxe
If / elseif (x > 0) { ... } else { ... }
Instrução switchswitch (n) { case 1: ...; break; default: ...; }
Expressão switchvar s = switch (n) { case 1 -> "one"; default -> "other"; };
Laço whilewhile (i < n) { ... }
Laço do-whiledo { ... } while (i < n);
Laço forfor (int i = 0; i < n; i++) { ... }
For aprimorado (for-each)for (String item : list) { ... }
Break / continuebreak; sai de um laço, continue; pula para a próxima iteração

Métodos

OperaçãoSintaxe
Definir um métodoint add(int a, int b) { return a + b; }
Sem valor de retornovoid greet() { ... }
Método estáticostatic int square(int x) { return x * x; }
Método públicopublic String getName() { return name; }
Varargsint sum(int... nums) { ... }
Chamar um métodoint r = add(2, 3);
Chamar um método estáticoMath.max(a, b);
Sobrecarga de métodoint max(int a, int b) e double max(double a, double b)

Classes e OOP

OperaçãoSintaxe
Definir uma classepublic class Dog { ... }
Campoprivate String name;
Construtorpublic Dog(String name) { this.name = name; }
Criar um objetoDog d = new Dog("Rex");
Getter / setterpublic String getName() { return name; }
Herançaclass Puppy extends Dog { ... }
Interfaceinterface Runnable { void run(); }
Implementar uma interfaceclass Task implements Runnable { ... }
Sobrescrever um método@Override public void speak() { ... }

Coleções

Coleções genéricas de java.util.

TipoUso e exemplo
ArrayList<T>Array dinâmico: list.add(1); list.get(0); list.size();
HashMap<K, V>Chave-valor: map.put("a", 1); map.get("a");
HashSet<T>Valores únicos: set.add(5); set.contains(5);
LinkedList<T>Lista duplamente encadeada, boa como fila/deque
ArrayDeque<T>Pilha/fila: dq.push(x); dq.pop();
Arrayint[] nums = {1, 2, 3};
Iterar uma listafor (T x : list) { ... }
Iterar um mapfor (var e : map.entrySet()) { e.getKey(); e.getValue(); }

Streams e lambdas

Pipelines em estilo funcional sobre coleções (Java 8+).

OperaçãoSintaxe
Expressão lambdax -> x * 2
Criar uma streamlist.stream()
Filtrar.filter(n -> n > 0)
Mapear / transformar.map(n -> n * 2)
Ordenar.sorted() ou .sorted(Comparator.reverseOrder())
Reduzir / somar.reduce(0, Integer::sum)
Contar / corresponder.count(), .anyMatch(n -> n > 5)
Coletar em lista.collect(Collectors.toList())
Para cada.forEach(System.out::println)

Padrões comuns (try/catch, generics)

PadrãoSintaxe
Try / catchtry { ... } catch (Exception e) { ... }
Capturar exceção específicacatch (IOException e) { ... }
Finallyfinally { ... } sempre executa
Try-with-resourcestry (Scanner sc = new Scanner(...)) { ... }
Lançar uma exceçãothrow new IllegalArgumentException("bad");
Classe genéricaclass Box<T> { T value; }
Método genérico<T> T first(List<T> list) { ... }
Tipo limitado<T extends Number>

A sintaxe, as coleções e as operações de stream de Java que você mais usa, em uma única página. Esta folha de consulta Java é uma referência rápida para escrever Java - os tipos de dados, o controle de fluxo, as classes, as coleções ArrayList/HashMap, a Streams API e os padrões de exceção e generics que você usa todos os dias.

Tudo aqui é Java padrão (Java 8 e posterior) e compila com javac. Copie o que precisar ou teste qualquer trecho ao vivo no playground de Java - sem JDK para instalar.

Perguntas frequentes sobre a folha de consulta Java

Esta folha de consulta Java é gratuita?
Sim. Esta folha de consulta Java é totalmente gratuita, sem necessidade de cadastro. Salve nos favoritos e volte sempre que precisar consultar uma sintaxe, uma coleção ou uma operação de stream.
Qual é a diferença entre == e .equals() em Java?
Para objetos, == compara referências - se duas variáveis apontam exatamente para o mesmo objeto - enquanto .equals() compara o conteúdo. Dois objetos String diferentes com o mesmo texto são .equals(), mas podem não ser ==. Sempre use .equals() para comparar strings e outros objetos por igualdade de valor; use == apenas para primitivos (int, boolean, etc.) ou para verificar null.
Para que servem as streams em Java?
A Streams API (Java 8+) permite processar coleções com um pipeline legível de operações - filter, map, sorted, reduce, collect - em vez de laços manuais. Você começa com list.stream(), encadeia operações intermediárias e finaliza com uma operação terminal como collect(Collectors.toList()) ou forEach. Isso mantém o código de transformação de dados conciso e expressivo.
Posso praticar Java online?
Sim. Abra o playground de Java para compilar e executar qualquer trecho desta folha de consulta no seu navegador - sem JDK para instalar. Quando quiser estrutura, o curso interativo e gratuito de Java da Coddy leva você passo a passo de variáveis e laços a classes, coleções e streams.
Esta folha de consulta é boa para iniciantes?
Sim. Ela está organizada dos blocos de construção mais comuns (tipos, controle de fluxo, métodos) até os avançados (streams, generics, exceções), de modo que você pode usar as seções de cima já no primeiro dia e ir avançando para o resto.
Coddy programming languages illustration

Aprenda Java com a Coddy

COMEÇAR