Exercícios de Programação Java

Pratique programação Java através de mais de 200 desafios de codificação práticos. Perfeito para iniciantes aprimorarem suas habilidades com projetos do mundo real, cobrindo estruturas de dados, algoritmos, OOP e conceitos básicos de Java.

Java

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Programa

Acessando Elementos em uma LinkedList

Acessando Elementos de um HashMap

Acessando Propriedades Estáticas de Outra Classe

Verificando a Igualdade de Strings

Criar LinkedList com Índice

Encontrando as Notas Mínimas e Máximas dos Alunos

Implementar Estrutura de Dados Deque

Implementando Expressão Lambda com Parâmetros

Implementando Herança Multinível

Remover o Segundo Elemento de um ArrayList

Ordenar Idades dos Jogadores em Ordem Crescente

Recuperação de Informações de Métodos de Classe

Execução Concorrente de Threads

Contagem de Ocorrências de Caracteres

Expressão Regular Personalizada

Problema de Compartilhamento de Dados em Sistema de Bilhetagem

Métodos Padrão em Múltiplas Interfaces

Desenhar Formas Geométricas

De Um Quarto para 0

Implementação Manual de Fila

Expressões Lambda para Operações de Dados

Impressão de Informações de Elementos de Matriz

Remover Números Duplicados

Definir um preço para ingressos de atrações

Jogo da Divisão de Dinheiro entre Irmãos

Simulando uma Biblioteca

Resolvendo o Problema da Distribuição de Maçãs com Exceções

Armazenando Informações de Dados Usando HashSet

Soma de Números Grandes

Soma dos Dígitos de um Número de Três Algarismos

O Único Deus

Uso de Stream

Validação do Número do Cartão de Identidade

Instrução de Impressão Simples em Java

Implementar Criptografia e Descriptografia

Acessar e Modificar o Nome do Aluno

Acessando o Método Sobrescrito da Superclasse

Acesso a Propriedades Estáticas em uma Classe

Acessando o Construtor da Superclasse

Adicionando Elementos a um ArrayList

Adicionando Elementos a ArrayLists em um Índice Específico

Programa de Cálculo de Área Usando Abstração

Calcular IMC Usando Peso e Altura

Calcular o Volume do Cubo a Partir do Lado

Calcular Bônus do Funcionário Baseado no Salário

Calcular Juros Baseado no Principal

Calcular a Altura Média dos Jogadores

Calcular Porcentagem com Arrays

Calcular Área do Retângulo Usando Classe

Calcular Dimensões do Retângulo

Calcular a Soma dos Dígitos

Calcular o Fatorial de um Número

Cálculo da Área de Dois Triângulos

Cálculo da Potência de um Número

Cálculo do Desvio Padrão em Java

Cálculo da Soma dos Números Naturais

Cálculo da Área de um Círculo

Cálculo da Área de um Quadrado

Chamando um Método Duas Vezes

Verificar Aprovação, Reprovação ou Nota Inválida

Verificando a Temperatura IcyHot Usando Java

Comparando os Primeiros e Últimos Elementos de um Array

Soma Contínua de Números Inseridos

Converter de Quilômetros para Milhas Usando Java

Contar as Vogais em uma String

Contagem de Dígitos em um Inteiro

Contagem de Ocorrências do Caractere 'a'

Crie um Programa de Calculadora

Criação de Classe Enum - Tamanho

Criação de uma Hierarquia Animal-Cão

Determinar os Fatores de um Número

Determinar a String Mais Longa a Partir das Entradas

Determinar o Número Máximo de Apertos de Mão Entre Estudantes

Determinar a Nota do Aluno

Determinação da Igualdade de Dois Argumentos

Determinação de Par ou Ímpar

Determinação de Número Harshad em Java

Determinar Se um Número é Armstrong

Determinação do Status de Número Primo

Distribuir Chocolates Entre Crianças

Encapsulamento do Gerenciamento de Salário de Funcionários

Constantes Enum como Strings

Excluir Múltiplos de Três dos Números

Programa de Conversão de Fahrenheit para Celsius

Encontrar Diferenças Entre Dois HashSets

Encontrar a Interseção de Dois HashSets

Encontrar o Maior Múltiplo Menor que 100

Encontrar o Menor Elemento do Array

Encontrar o Irmão Mais Novo

Encontrando Nemo em um ArrayList

Encontrando Números Primos em Intervalos

Encontrando o MDC de Dois Números

Encontrando o Mínimo Múltiplo Comum

Programa FizzBuzz: Explicação da Entrada do Utilizador

Gerar Tabela de Multiplicação Usando Laços (Loops)

Maior Fator Excluindo Ele Próprio

Identificar Números Auto-Divisíveis

Identificação de Números Abundantes Usando Java

Implementar Interface para Calcular a Área do Quadrado

Implementando uma Fila Usando uma LinkedList

Sobrecarga de Métodos para Diferentes Parâmetros

Sobrecarga de Métodos com Diferentes Tipos de Parâmetros

Modificar Elementos em HashMap

Modificando um ArrayList com Java

Sobrescrita de Método em Múltiplas Classes

Múltiplas Classes Herdando de Uma Classe

Multiplicar Array por Dez

Demonstração de Sobrecarga de Método Final

Sobrescrevendo o Método da Classe Pai

Verificação de Número Palíndromo

Realizar Adição de Números Complexos

Programa de Conversão de Libras para Quilogramas

Tipos Primitivos para Classes Wrapper

Imprimir Qualquer Tipo de Dado

Imprimir Números Pares de um Array

Imprimir Caracteres Não Alfabéticos

Imprimir Valor de Qualquer Tipo de Dado

Impressão de Elementos de Array

Imprimindo Caracteres Individuais em uma String

Imprimindo uma Frase Três Vezes

Removendo Elementos de um HashMap

Programa de Inversão de Número

Calculadora de Lucro/Prejuízo da Loja

Programa de Cálculo de Juros Simples

Concatenação de Strings: Dois Textos Combinados

Conversão de String: Primeira Letra Maiúscula

Subtração de Coordenadas

Troca de Dois Números com Variável Temporária

Ângulos Internos Válidos de um Triângulo

Validar Condição de Ano Bissexto

Verificar o Status de Número Primo Usando Java

Verificação de Instância de Classe

Programa de Determinação de Elegibilidade para Voto

Jogo de Batalha Aérea

Fissão Celular Alienígena

Área do Círculo com Qualquer Raio

Mercado de Vendas Automotivas

Programa de Conta Bancária

Flores Competem pela Beleza

Construção e Implantação do Spring Boot

Distribuição de Cartões de Visita

Criptografia de Cifra de César

Cálculo do Volume de um Cubo

Cálculo do Volume de um Cilindro

Simulação de Sala de Bate-papo

Classificação de Notas da Turma

Propriedades e Métodos de Classe

Classificar Palavras por Classes Gramaticais

Gaiola de Galinhas e Coelhos Coexistentes

Conteúdo do Arquivo de Configuração

Configurando Parâmetros de Classe com Anotações

Contagem de Ocorrências de uma Substring

Definir Suas Anotações

Desenho e Implementação de Interface Gráfica

Desenho e Implementação de Múltiplas Interfaces

Determinar a Viabilidade de Retorno da Nave Espacial

Determinar a Viabilidade de um Triângulo com Tratamento de Exceções

Sincronização dos Filósofos Cinderelos

Exibindo Informações de Dados Usando Iterador

Dividir Maçãs com Tratamento de Exceções

Programa Eficiente de Análise de Notas de Alunos

Inserir informações do aluno

Classe Enum para Informações de Gênero

Programação da Sequência de Fibonacci

Filtragem de Conteúdo de Arquivo

Upload de Arquivo Baseado no Protocolo UDP

Instruções de Controle de Fluxo para Múltiplos Requisitos

Preenchimento Divertido de Código

Obter Informações da Página Inicial do Google

Tratamento de Notas Incorretas

Olá LabEx Usando Java

Quantos Dias Tem Cada Mês

Implementar Thread de Temporizador de Contagem Regressiva

Implementar uma classe Stock

Implementando o Triângulo de Pascal

Implementando a Divisão de Strings

Implementando Classe de Utilidade para Strings

Serviço Inteligente de Chamada de Cuidados

Interseção de Listas Encadeadas

Cálculo do Salário de Engenheiro Java

A Generosidade de Kong Rong

Simulação do Jogo de Cartas Landlords Usando Java

Lançamento do Cálculo Automatizado de Altura de Wayne

Classificação de Informações de Log

Amor à Primeira Vista

Maximizando a Pontuação do Xadrez Avião Usando Programação Dinâmica

Estratégia para Maximizar a Destruição de Aeronaves

Valor máximo de três números.

Modificar o Design da Arma Usando Herança

Julgamento de Número Narcisista

Navegando a Ponte Espacial com Arrays em Java

Marketing da Loja de Joias 'Sem Dinheiro'

Número de Números Palíndromos

Nüwa Cria os Humanos

Obtenção de Objetos de Classe de Diferentes Classes

Operações com Referências de Método

Seleção Ótima de Moedas para Compra de Mola

Otimização de Simulação de Corrida de Revezamento com Threads

Imprimir um Triângulo

Exibindo Informações do Livro

Análise de Dados XML com DOM

Ponto Dentro de um Triângulo

Implementação de Fila Produtor-Consumidor

Criação Reflexiva de um Objeto Pessoa

Liberar Recurso Scanner usando finally

Resgate a Princesa com Execução Condicional

Inverter Array Unidimensional em Java

Inverter Lista de Palavras de Saída

Inverter a Ordem das Palavras em Frases em Inglês

Reescrevendo o método equals

Executando Dados Alternadamente em Três Grupos

Análise SAX de Dados XML

Busca em um Array Bidimensional

Consulta de Informações do Usuário com Servlet

Sistema Simples de Gerenciamento de Estudantes

Sistema Simulada de Gestão Universitária

Controle de Velocidade da Nave Espacial

Poupe-me, Meu Senhor

Travessia em Espiral de uma Árvore

Subida de Escadas e Previsão de Saldo

Armazenamento de Informações de Dados Usando TreeSet

Treino de Força com Método Acumulativo

Construtores da Classe String

Estatísticas de Informação de Strings

Métodos da classe String

Sistema de Gestão de Estudantes

Sistema de Classificação de Notas dos Estudantes

Contagem de Ocorrências de Substring

Jogabilidade de Invocação de Elfos

O Bolso Mágico

A Parede Tem Ouvidos

A Terra Errante

O Desejo de Cinco Centavos

Compreendendo o Pool de Constantes

Validação de Cadastro de Usuário com Exceções

Usando Herança para Economizar Código

Quando Consigo Economizar Dinheiro Suficiente

Escrevendo Objetos em Arquivo

Yin e Yang

Introdução

Fortaleça a resolução de problemas Java com uma biblioteca de 239 desafios práticos. A coleção vai de sintaxe e aritmética a estruturas de dados, orientação a objetos, arquivos, APIs funcionais, concorrência, redes e algumas tecnologias de aplicação.

É um banco não linear, não um único caminho guiado. Você pode escolher tarefas do tema atual, rever pontos fracos ou avançar de programas de console para exercícios especializados sem concluir tudo em ordem.

O que você aprenderá

Ao concluir os desafios relevantes, você saberá:

  • Aplicar entrada, operadores, condições, loops, métodos, arrays, matrizes, strings e tipos numéricos em programas pequenos.
  • Resolver problemas de cálculo, propriedades numéricas, sequências, busca, ordenação, texto e percursos.
  • Construir e manipular ArrayList, LinkedList, queues, deques, maps, sets, iterators e estruturas próprias.
  • Modelar com classes, encapsulamento, herança, abstração, interfaces, sobrecarga, sobrescrita, enums e genéricos.
  • Usar lambdas, referências de método, streams, annotations, reflection e expressões regulares em tarefas focadas.
  • Tratar exceções e trabalhar com texto, serialização, configuração e parsing XML DOM ou SAX.
  • Coordenar threads com estado compartilhado, sincronização, queues produtor-consumidor e exercícios clássicos.
  • Explorar cenários isolados de GUI, UDP, servlet, HTTP e Spring Boot além do núcleo Java.

Para quem é este curso

O curso é para quem já conhece a sintaxe Java e deseja muitos exercícios independentes. Atende estudantes em prática de coding, programadores revendo APIs ou recursos e aprendizes intermediários buscando desafios após o currículo introdutório.

Pré-requisitos: Você deve saber escrever, compilar e depurar programas Java básicos e entender variáveis, fluxo, métodos, classes e arrays. Desafios especializados exigem fundamentos de collections, arquivos, concorrência, redes, XML, servlets ou Spring Boot; a coleção não ensina todos em sequência.

Ambiente de aprendizagem: Os 239 desafios usam ambientes Java fornecidos. A maioria envolve editar, compilar e executar código, enquanto tarefas específicas usam arquivos, GUI, redes, servlet tooling ou Spring Boot; os detalhes variam por desafio.

Perguntas frequentes

Este é realmente um curso Beginner?

Ele é marcado como Beginner e muitas tarefas são fundamentais, mas também inclui genéricos, reflection, concorrência, redes, servlets e Spring Boot. Faça Java para Iniciantes primeiro se você é novo.

Preciso concluir os 239 desafios em ordem?

Não. O curso é configurado como não ordenado. Use-o como biblioteca e escolha exercícios conforme o tema e sua preparação.

São tutoriais guiados ou exercícios independentes?

São tarefas de desafio, não um walkthrough de 239 aulas. Cada uma apresenta um problema a implementar, sendo mais útil para aplicar conceitos já estudados.

As tarefas de Spring Boot, servlet, GUI e redes ensinam esses temas por completo?

Não. São extensões individuais dentro de uma coleção muito maior. Para aprender framework, web, desktop ou redes sistematicamente, escolha um curso dedicado após a base Java.

Professor

labby
Labby
Labby is the LabEx teacher.