Aprenda Java
Um curso de Java online, grátis e interativo. Você escreve Java em cada aula, com dicas de IA quando algo não compila, e um certificado grátis ao concluir.
224,055+ codders inscritos
- Ideal para iniciantes
Ajuda de codificação com IA
Lições interativas e práticas
Narração em áudio em todas as lições
Questionários para testar seu conhecimento
Certificado grátis de conclusão
Programa
Seção 1
Fundamentos
Começar seçãoIniciarExpandirRecolherConstrua uma base sólida com conceitos essenciais e habilidades básicasIntroduction
4 lições324- 01JavaDesafio
- 02Hello World!DesafioQuizÁudio
- 03CommentsQuizÁudio
- 04Basic Program StructureDesafioQuizÁudio
Variables Part 1
5 lições940- 01NumbersDesafioMaestriaQuizÁudio
- 02StringDesafioMaestriaQuizÁudio
- 03BooleanDesafioMaestriaQuizÁudio
- 04charDesafioMaestriaQuizÁudio
- 05Type DeclarationDesafioQuizÁudio
Variables Part 2
5 lições333- 01ConstantsDesafioQuizÁudio
- 02Naming ConventionsQuizÁudio
- 03Recap - Initialize VariablesDesafio
- 04Type Casting Part 1DesafioQuizÁudio
- 05Type Casting Part 2QuizÁudio
Operators Part 1
7 lições956- 01Arithmetic OperatorsDesafioMaestriaQuizÁudio
- 02Modulo OperatorDesafioMaestriaQuizÁudio
- 03Increment/DecrementDesafioMaestriaQuizÁudio
- 04Post Increment/DecrementMaestriaQuizÁudio
- 05Arithmetic ShortcutsDesafioQuizÁudio
- 06Comparison OperatorsDesafioQuizÁudio
- 07String ComparisonQuizÁudio
Operators Part 2
5 lições834- 01Logical Operators Part 1DesafioMaestriaQuizÁudio
- 02Logical Operators Part 2DesafioMaestriaQuizÁudio
- 03Recap - Simple LogicDesafio
- 04Logical Operators Part 3DesafioQuizÁudio
- 05Logical Operators Part 4DesafioMaestriaQuizÁudio
Decision Making
6 lições1038- 01If StatementDesafioMaestriaQuizÁudio
- 02If - ElseDesafioMaestriaQuizÁudio
- 03Switch StatementDesafioMaestriaQuizÁudio
- 04Ternary OperatorDesafioMaestriaQuizÁudio
- 05Recap - If ElseDesafio
- 06Nested If - ElseDesafioQuizÁudio
Basic IO
5 lições723- 01System.out MethodsDesafioMaestriaQuizÁudio
- 02Formatting OutputDesafioMaestriaQuizÁudio
- 03Scanner ClassDesafioQuizÁudio
- 04Recap - Till 120Desafio
- 05Recap - True or FalseDesafio
Calculator App
Projeto4 lições1- 01Welcome MessageDesafio
- 02Getting NumbersProjeto
- 03Basic OperationsProjeto
- 04Formatted OutputProjeto
Loops
9 lições1362- 01For Loop Part 1DesafioMaestriaQuizÁudio
- 02While LoopDesafioMaestriaQuizÁudio
- 03Do While LoopDesafioMaestriaQuizÁudio
- 04BreakDesafioMaestriaQuizÁudio
- 05ContinueDesafioMaestriaQuizÁudio
- 06For Loop Part 2QuizÁudio
- 07Nested LoopDesafioMaestriaQuizÁudio
- 08Infinite LoopQuizÁudio
- 09Recap - Dynamic InputDesafio
Methods (Functions)
7 lições843- 01Declaring MethodsDesafioMaestriaQuizÁudio
- 02Method ParametersDesafioQuizÁudio
- 03Return TypesDesafioQuizÁudio
- 04Method OverloadingMaestriaQuizÁudio
- 05Recap - Sigma FunctionDesafio
- 06Recap - Validation FunctionDesafio
- 07Void MethodsDesafioQuizÁudio
Arrays Basics
6 lições929- 01Declaring ArraysDesafioQuizÁudio
- 02Accessing ElementsDesafioQuizÁudio
- 03Modifying ArraysDesafioMaestriaQuizÁudio
- 04Array MethodsDesafioMaestriaQuizÁudio
- 05Recap - Product ArrayDesafioMaestria
- 06Recap - Reversed ArrayDesafio
Iterating Over Arrays
3 lições423- 01Using For LoopDesafioQuizÁudio
- 02Enhanced For LoopDesafioQuizÁudio
- 03Common Array OperationsDesafioMaestriaQuizÁudio
String Operations
4 lições832- 01String Methods Part 1DesafioMaestriaQuizÁudio
- 02String Methods Part 2DesafioMaestriaQuizÁudio
- 03String FormattingDesafioMaestriaQuizÁudio
- 04String ComparisonDesafioMaestriaQuizÁudio
Final Challenges
3 lições38- 01Number PatternDesafioQuizÁudio
- 02Pattern FinderDesafio
- 03Student Grade CalculatorDesafio
Seção 2
Lógica e Fluxo
Começar seçãoIniciarExpandirRecolherDomine a programação avançada em Java com foco em estruturas de dados e controle de fluxo. Aprenda a trabalhar com arrays complexos, collections, tratamento de erros e gerenciamento de tempo.Arrays Multidimensionais
9 lições1457- 01Básicos de Arrays 2DDesafioQuiz
- 02Acessando Elementos de Arrays 2DDesafioQuiz
- 03Loops Aninhados com Arrays 2DDesafioMaestriaQuiz
- 04Resumo - Arrays 2DDesafio
- 05Adição e Subtração de MatrizesDesafioMaestriaQuiz
- 06Arrays EscalonadosDesafioMaestriaQuiz
- 07Arrays 3D e AlémDesafioMaestriaQuiz
- 08Padrões Comuns de Arrays 2DDesafioMaestriaQuiz
- 09Resumo - Tudo Sobre ArraysDesafio
HashMap Parte 1
6 lições637- 01O que é um HashMap?Quiz
- 02Declarar um HashMapDesafioQuiz
- 03Acessando ValoresDesafioQuiz
- 04Verificar se a Chave ExisteDesafioMaestriaQuiz
- 05Modificando DicionáriosDesafioQuiz
- 06Resumo - HashMapDesafio
HashMap Parte 2
6 lições1030- 01Métodos do HashMapDesafioMaestriaQuiz
- 02Iterar com keySet()DesafioMaestriaQuiz
- 03Iterar com entrySet()DesafioMaestriaQuiz
- 04HashMap AninhadoDesafioMaestriaQuiz
- 05Resumo - Gerenciar ArmazémDesafio
- 06Resumo - Operações do HashMapDesafio
HashSet Parte 1
7 lições844- 01O que é um HashSet?Quiz
- 02Adicionando um ElementoDesafioQuiz
- 03Removendo um ElementoDesafioQuiz
- 04Verificando se um Elemento ExisteDesafioMaestriaQuiz
- 05Vazio e TamanhoDesafioMaestriaQuiz
- 06Limpar e ClonarDesafioQuiz
- 07Resumo - HashSetDesafio
HashSet Parte 2
6 lições1146- 01Mat. - União de HashSetsDesafioMaestriaQuiz
- 02Mat. - Interseção de HashSetDesafioMaestriaQuiz
- 03Mat. - Diferença de ConjuntosDesafioMaestriaQuiz
- 04Mat. - Diferença SimétricaDesafioQuiz
- 05Subconjuntos e SuperconjuntosDesafioMaestriaQuiz
- 06Iterando Sobre ConjuntosDesafioMaestriaQuiz
Fluxo de Controle Avançado
5 lições929- 01Declarações RotuladasDesafioMaestriaQuiz
- 02Expressão SwitchDesafioMaestriaQuiz
- 03Correspondência de PadrõesDesafioMaestriaQuiz
- 04Cláusulas de GuardaDesafioMaestriaQuiz
- 05Resumo - Fluxo de ControleDesafio
Tratamento Básico de Erros
4 lições630- 01Try-Catch BásicoDesafioMaestriaQuiz
- 02Bloco FinallyDesafioQuiz
- 03Lançando ExceçõesDesafioMaestriaQuiz
- 04Exceções PersonalizadasDesafioQuiz
Operações Avançadas com Strings
6 lições1145- 01Básicos do StringBuilderDesafioMaestriaQuiz
- 02Introdução ao StringBufferDesafioMaestriaQuiz
- 03Básicos de Expressões RegularesDesafioMaestriaQuiz
- 04Emparelhamento de Padrões com RegexDesafioMaestriaQuiz
- 05Tokenizador de StringsDesafioMaestriaQuiz
- 06Formatação Avançada de StringsDesafioQuiz
Projeto - Contador de Palavras Únicas
Projeto4 lições123- 01Entrada e Armazenamento de TextoDesafio
- 02Processamento de PalavrasProjetoQuiz
- 03Contagem de PalavrasProjetoQuiz
- 04Estatísticas AvançadasProjetoQuiz
Data e Hora
6 lições646- 01Básicos do LocalDateDesafioQuiz
- 02Operações com LocalTimeDesafioQuiz
- 03Uso do LocalDateTimeDesafioQuiz
- 04Period e DurationDesafioQuiz
- 05Formatação de DataDesafioQuiz
- 06Tratamento de Fuso HorárioDesafioQuiz
Seção 3
Programação Orientada a Objetos
Começar seçãoIniciarExpandirRecolherDescubra como organizar o código com classes, objetos e estruturas reutilizáveisFundamentos de POO
9 lições971- 01Arquivos ExternosDesafioQuiz
- 02Introdução à POODesafioQuiz
- 03Classes vs ObjetosDesafioQuiz
- 04A Palavra-chave thisDesafioQuiz
- 05MétodosDesafioQuiz
- 06Campos (Atributos)DesafioQuiz
- 07Método ConstrutorDesafioQuiz
- 08Sobrecarga de ConstrutorDesafioQuiz
- 09Recapitulação - Calculadora SimplesDesafio
Modificadores de Acesso e Encapsulamento
5 lições536- 01Visão Geral dos Níveis de AcessoDesafioQuiz
- 02Métodos Getter e SetterDesafioQuiz
- 03Ocultação de InformaçõesDesafioQuiz
- 04A Palavra-chave finalDesafioQuiz
- 05Recapitulação - Gerenciador de Conta BancáriaDesafio
Propriedades de Classe e Membros Estáticos
5 lições533- 01Variáveis de Instância vs EstáticasDesafioQuiz
- 02Métodos EstáticosDesafioQuiz
- 03Blocos EstáticosDesafioQuiz
- 04Constantes (static final)DesafioQuiz
- 05Recapitulação - Contador e UtilitárioDesafio
Herança
8 lições862- 01Herança Básica (extends)DesafioQuiz
- 02A Palavra-chave superDesafioQuiz
- 03Sobrescrita de Método (@Override)DesafioQuiz
- 04Encadeamento de ConstrutoresDesafioQuiz
- 05A Classe ObjectDesafioQuiz
- 06Herança Simples e MultinívelDesafioQuiz
- 07Por que não há Herança Múltipla de ClassesDesafioQuiz
- 08Recapitulação - Hierarquia de FuncionáriosDesafio
Polimorfismo
6 lições645- 01Fundamentos de Sobrecarga de MétodosDesafioQuiz
- 02Sobrescrita de Métodos (Tempo de Execução)DesafioQuiz
- 03Upcasting e DowncastingDesafioQuiz
- 04O Operador instanceofDesafioQuiz
- 05Classes e Métodos AbstratosDesafioQuiz
- 06Recapitulação - Calculadora de FormasDesafio
Interfaces e Classes Abstratas
7 lições754- 01Introdução às InterfacesDesafioQuiz
- 02Implementando InterfacesDesafioQuiz
- 03Implementação de Múltiplas InterfacesDesafioQuiz
- 04Default e Static em InterfacesDesafioQuiz
- 05Classes Abstratas vs InterfacesDesafioQuiz
- 06Interfaces FuncionaisDesafioQuiz
- 07Recapitulação - Sistema de PagamentoDesafio
Métodos Especiais e a Classe Object
6 lições644- 01Método toString()DesafioQuiz
- 02equals() e hashCode()DesafioQuiz
- 03Método clone()DesafioQuiz
- 04compareTo() e ComparableDesafioQuiz
- 05Interface ComparatorDesafioQuiz
- 06Recapitulação - Ordenação PersonalizadaDesafio
Conceitos Avançados de OOP
6 lições653- 01Composição vs HerançaDesafioQuiz
- 02Agregação vs ComposiçãoDesafioQuiz
- 03Classes Internas, Aninhadas e AnônimasDesafioQuiz
- 04Enums e Métodos de EnumDesafioQuiz
- 05Records (Java 16+)DesafioQuiz
- 06Classes Seladas (Java 17+)DesafioQuiz
Generics
6 lições644- 01Introdução a GenericsDesafioQuiz
- 02Classes GenéricasDesafioQuiz
- 03Métodos GenéricosDesafioQuiz
- 04Parâmetros de Tipos DelimitadosDesafioQuiz
- 05Wildcards (?, extends, super)DesafioQuiz
- 06Recapitulação - Container GenéricoDesafio
Tratamento de Exceções em POO
5 lições536- 01Hierarquia de Classes de ExceçãoDesafioQuiz
- 02Exceções PersonalizadasDesafioQuiz
- 03Erros Checked vs UncheckedDesafioQuiz
- 04Padrão Try With ResourcesDesafioQuiz
- 05Recapitulação - Usuário ValidadoDesafio
Padrões de Projeto Parte 1
6 lições654- 01Introdução aos Padrões de ProjetoDesafioQuiz
- 02Padrão SingletonDesafioQuiz
- 03Padrão FactoryDesafioQuiz
- 04Padrão BuilderDesafioQuiz
- 05Padrão ObserverDesafioQuiz
- 06Padrão StrategyDesafioQuiz
Padrões de Projeto Parte 2
7 lições763- 01Padrão CommandDesafioQuiz
- 02Padrão AdapterDesafioQuiz
- 03Padrão DecoratorDesafioQuiz
- 04Padrão Template MethodDesafioQuiz
- 05Padrão StateDesafioQuiz
- 06Padrão CompositeDesafioQuiz
- 07Padrão IteratorDesafioQuiz
Projeto: Gerenciamento de Biblioteca
Projeto7 lições1- 01Visão Geral do Projeto e Modelagem UMLDesafio
- 02Classes Livro e UsuárioProjeto
- 03Sistema de EmpréstimosProjeto
- 04Funcionalidade de BuscaProjeto
- 05Interface do AdministradorProjeto
- 06Integração de Tratamento de ExceçõesProjeto
- 07Testes e IntegraçãoProjeto
Desafios Finais
4 lições437- 01Plataforma de E-LearningDesafioQuiz
- 02Sistema BancárioDesafioQuiz
- 03Desenvolvimento de Personagens de JogosDesafioQuiz
- 04Serviço de Aluguel de VeículosDesafioQuiz
Cursos de Java
Cursos práticos de Java, grátis para começar no navegador.
Desafios para Iniciantes - Pratique Conceitos Básicos
PopularColoque seus conhecimentos básicos de programação à prova e tente resolver estes desafios de programação. Use a linguagem que desejar. Bons códigos!
Certificado ao concluir
- 20
- 20
Problemas de Programação
PopularColoque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com algum conhecimento prévio da sintaxe básica em qualquer linguagem de programação.
Certificado ao concluir
- 32
- 31
Desafios de Programação: Volume 2
Coloque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com conhecimento prévio da sintaxe básica em qualquer linguagem de programação, este curso é uma extensão do primeiro Desafios de Programação.
Certificado ao concluir
- 25
- 24
Pilha - Série Estruturas de Dados #1
Neste curso, você aprenderá sobre a estrutura de dados Pilha, criará uma Pilha do zero usando sua linguagem preferida e praticará desafios de programação com ela!
- 13
- 6
- 1
Heaps e Filas de Prioridade - Série de Estruturas de Dados #7
NovoNeste curso, você aprenderá sobre a estrutura de dados Heap (a base das filas de prioridade), criará um MinHeap do zero usando sua linguagem preferida e praticará desafios de codificação com ela!
Certificado ao concluir
- 14
- 6
- 1
Bootcamp de Padrões de Estrelas
Coloque suas habilidades de resolução de problemas de programação em prática para aprender a imprimir padrões de estrelas que variam do simples ao complexo, envolvendo diferentes níveis de loops aninhados, estruturas condicionais e cálculos matemáticos.
- 30
- 28
Por que aprender Java com a Coddy
- Escreva e execute código Java real no navegador. Sem instalar o JDK, sem configurar IDE. O editor compila e roda seu programa Java no servidor e mostra a saída na hora.
- Java orientado a objetos como é usado no mundo real: classes, herança, interfaces, polimorfismo, generics, tratamento de exceções. Cada conceito vem com um exercício prático.
- As dicas de IA ajudam você a ler e corrigir erros de Java, principalmente as stack traces verbosas, para que a linguagem pareça menos intimidante desde o primeiro dia.
- Certificado de Java grátis ao concluir o curso. Um sinal confiável para vagas de backend, Android ou em empresas onde fluência em Java conta.