Documentação de Java
Referência concisa e baseada em exemplos de Java. Leia o conceito, veja o código e pratique em uma jornada da Coddy.
Inicie uma jornada guiada de JavaPrimeiros passos
- O que é JavaO que Java realmente é, como a JVM permite que um mesmo programa compilado rode em qualquer lugar e os tipos de software que se constroem com Java.
- Instalar o JavaComo instalar o Kit de Desenvolvimento Java (JDK), escolher a versão e o fornecedor e confirmar que java e javac funcionam pela linha de comando.
- Executando JavaO ciclo de dois passos compilar-e-executar por trás de todo programa Java: transforme o código-fonte .java em bytecode com javac e depois execute o arquivo .class com java.
- Sintaxe de JavaA forma de um programa Java: o método `main`, as instruções e os pontos e vírgulas, os blocos e as chaves, e as regras que o compilador exige antes mesmo de o seu código rodar.
- ComentáriosComo escrever comentários em Java: comentários de uma linha //, blocos de várias linhas /* */ e comentários de documentação Javadoc /** */, além de quando usar cada um e o que evitar.
Variáveis e tipos
- VariáveisComo as variáveis funcionam em Java: declarar com um tipo, atribuir valores, regras de nomenclatura, a palavra-chave var, constantes com final e as regras de escopo que decidem onde uma variável vive.
- Tipos de dadosOs tipos de dados de Java explicados: os oito tipos primitivos, os tipos de referência, os valores padrão, os literais e sufixos, o estouro (overflow) e quando usar cada tipo numérico.
- StringsComo as strings em Java funcionam: como criá-las, juntá-las com +, por que são imutáveis, compará-las com equals e os métodos de String do dia a dia, como length, substring e replace.
- Formato de stringsComo formatar strings em Java com String.format e printf - os especificadores de formato para números, preenchimento, casas decimais, além dos text blocks e do método formatted.
- OperadoresComo funcionam os operadores do Java - aritméticos, de comparação, lógicos, de atribuição, de incremento e o operador ternário - além da divisão inteira, da precedência e das pegadinhas que costumam pegar os iniciantes.
- Conversão de tiposComo o Java converte entre tipos: ampliação automática, conversões de redução explícitas, quais dados você perde ao reduzir e como converter entre números e strings.
Fluxo de controle
- if-elseComo tomar decisões em Java com if, else if e else: condições booleanas, encadeamento de ramos, aninhamento, o operador ternário e os erros comuns que confundem as pessoas.
- switchO comando switch do Java explicado: rótulos case, break e fall-through, o ramo default, agrupamento de casos, a forma moderna com seta e as expressões switch.
- Loop forO loop for do Java explicado: o clássico loop de três partes, percorrer arrays e listas, loops aninhados, break e continue, e o for-each aprimorado.
- Loops whileO loop while do Java explicado: o while que checa a condição primeiro, o do-while que executa pelo menos uma vez, ler entrada até um valor sentinela, break e continue, e como evitar loops infinitos.
- Loop for-eachO loop for-each do Java (for melhorado) explicado: iteração limpa sobre arrays e coleções, quando usá-lo e a pegadinha da modificação que confunde todo mundo.
Arrays e coleções
- ArraysComo os arrays funcionam em Java: tamanho fixo, como declará-los e inicializá-los, indexação, length, percursos, arrays multidimensionais e a classe utilitária Arrays.
- ArrayListComo usar o ArrayList do Java - a lista redimensionável que você escolhe no lugar de um array comum - cobrindo adicionar, obter, remover, tamanho, percorrer e ordenar.
- HashMapComo usar o HashMap do Java para buscas chave-valor: put, get, getOrDefault, containsKey, iterar sobre entradas e os padrões que você mais vai usar.
- HashSetComo usar o HashSet do Java para coleções de valores únicos: add, contains, remover, eliminar duplicatas de uma lista e combinar conjuntos com união, interseção e diferença.
- Iterando coleçõesAs formas de percorrer coleções em Java - o laço for-each, o Iterator, laços com índice e o método forEach - e como remover elementos com segurança durante a iteração.
Métodos
- MétodosO que é um método em Java, como declará-lo e chamá-lo, valores de retorno versus void, o método estático main e como os métodos mantêm o código organizado e reutilizável.
- Parâmetros de métodosComo funcionam os parâmetros de métodos em Java: passar argumentos, a diferença entre parâmetros e argumentos, a regra de passagem por valor do Java e o retorno de valores.
- Sobrecarga de métodosComo a sobrecarga de métodos em Java permite que vários métodos compartilhem um nome mas recebam parâmetros diferentes, como o compilador escolhe uma sobrecarga e quais armadilhas de ambiguidade evitar.
- VarargsComo os varargs (...) do Java permitem que um método aceite qualquer número de argumentos, como eles viram um array, a regra de um único vararg por último, e as armadilhas da chamada vazia e da ambiguidade.
Classes e objetos
- ClassesO que é uma classe em Java, como definir campos e métodos, criar objetos com new, o papel do this e por que o estado de instância vive no objeto.
- ConstrutoresComo os construtores em Java funcionam: o construtor padrão, construtores parametrizados, this, sobrecarga de construtores e encadeamento com this() e super().
- HerançaComo uma subclasse em Java herda campos e métodos com extends, chama a classe pai por meio de super e sobrescreve comportamentos - além das armadilhas mais comuns.
- InterfacesO que é uma interface em Java, como defini-la e implementá-la, os métodos default e static, e como as interfaces diferem das classes abstratas.
- Classes abstratasO que é uma classe abstrata em Java, como declarar métodos abstratos, por que você não pode instanciá-la e quando escolher uma classe abstrata em vez de uma interface.
- PolimorfismoComo o polimorfismo em Java permite que uma variável referencie muitos tipos, por que métodos sobrescritos são despachados em tempo de execução e como usar upcasting, downcasting e instanceof com segurança.
- Modificadores de acessoComo os quatro níveis de acesso do Java - public, private, protected e package-private - controlam o que o restante do código pode ver e tocar.
- Membros estáticosO que a palavra-chave static faz em Java, como campos e métodos static pertencem à classe em vez dos objetos, e quando recorrer a blocos static e constantes.
- EnumsO que é um enum em Java, como declará-lo, adicionar campos e métodos, usá-lo em um switch e por que um enum é melhor do que um monte de constantes int ou String.
Genéricos e funcional
- GenericsO que são os generics de Java, como escrever classes e métodos genéricos, parâmetros de tipo limitados, curingas e por que o apagamento de tipos importa.
- Expressões lambdaO que é uma expressão lambda em Java, a sintaxe da seta, como ela implementa uma interface funcional, referências a métodos e captura de variáveis.
- StreamsComo processar coleções com a Stream API do Java - filter, map, sorted, collect, count e reduce - construindo pipelines legíveis em vez de laços manuais.
- OptionalO que é java.util.Optional, como criar um e como ler seu valor com segurança usando map, filter, orElse e ifPresent em vez de verificações de null.
Erros e depuração
- ExceçõesO que é uma exceção em Java, como ler um rastreamento de pilha, a distinção entre exceções verificadas e não verificadas, a hierarquia de exceções e como lançar as suas próprias.
- try-catchComo usar o try-catch do Java para tratar exceções: capturar tipos específicos, o bloco finally, try-with-resources e os erros que escondem bugs.
- NullPointerExceptionO que um NullPointerException em Java realmente significa, as formas comuns de provocá-lo, como ler a mensagem e os padrões que o evitam.