Skip to content

Latest commit

 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Curso DevDojo - Maratona Java

Java License DevDojo

Repositório contendo todos os códigos, exercícios e projetos desenvolvidos durante o curso Maratona Java - Virado no Jiraya do canal DevDojo Academy.

📋 Sobre o Curso

Este é um dos cursos de Java mais completos disponíveis gratuitamente em português, criado pelo professor William Suane do canal DevDojo. O curso aborda desde os fundamentos básicos da linguagem até conceitos avançados de programação.

Duração: +200 aulas (aproximadamente 26 horas)
Nível: Iniciante a Avançado
Idioma: Português (BR)

🎯 Objetivo

Dominar a linguagem Java através de uma abordagem prática e completa, construindo uma base sólida para desenvolvimento de aplicações robustas e preparação para o mercado de trabalho.

📚 Conteúdo Programático

🔰 Módulo 1: Fundamentos

  • Introdução à Linguagem Java

    • História e características do Java
    • JVM, JRE e JDK
    • Primeiro programa em Java
    • Comentários e convenções de código
  • Tipos Primitivos

    • byte, short, int, long
    • float, double
    • char e boolean
    • Casting e conversão de tipos
  • Operadores

    • Aritméticos (+, -, *, /, %)
    • Relacionais (==, !=, <, >, <=, >=)
    • Lógicos (&&, ||, !)
    • Atribuição e incremento
  • Estruturas Condicionais

    • if, else if, else
    • switch case
    • Operador ternário
  • Estruturas de Repetição

    • while
    • do-while
    • for
    • for-each (enhanced for)
    • break e continue

🏗️ Módulo 2: Orientação a Objetos

  • Classes e Objetos

    • Definição de classes
    • Atributos e métodos
    • Construtores
    • Sobrecarga de métodos e construtores
    • This e referências
  • Modificadores de Acesso

    • public, private, protected
    • default (package-private)
    • Encapsulamento
  • Métodos

    • Passagem de parâmetros
    • Return
    • Métodos estáticos
    • Varargs
  • Associação de Classes

    • Associação unidirecional e bidirecional
    • Agregação
    • Composição
  • Herança

    • Extends
    • Super
    • Sobrescrita de métodos (@Override)
    • Modificador final
  • Polimorfismo

    • Polimorfismo de sobrescrita
    • Polimorfismo de sobrecarga
    • Casting de objetos
  • Classes Abstratas

    • Métodos abstratos
    • Classes abstratas vs concretas
  • Interfaces

    • Implementação de interfaces
    • Métodos default e static (Java 8+)
    • Interfaces funcionais

📦 Módulo 3: Classes Utilitárias

  • String

    • Imutabilidade
    • Métodos principais
    • StringBuilder e StringBuffer
    • Expressões regulares
  • Wrappers

    • Integer, Double, Boolean, etc.
    • Autoboxing e Unboxing
  • Datas

    • Date e Calendar (legado)
    • LocalDate, LocalTime, LocalDateTime
    • ZonedDateTime
    • Formatação e parsing
  • Formatação

    • NumberFormat
    • DateTimeFormatter
    • Locale
  • Arrays

    • Arrays unidimensionais e multidimensionais
    • Classe Arrays
    • Ordenação e busca

🗂️ Módulo 4: Collections Framework

  • List

    • ArrayList
    • LinkedList
    • Vector
    • Métodos principais
  • Set

    • HashSet
    • LinkedHashSet
    • TreeSet
  • Map

    • HashMap
    • LinkedHashMap
    • TreeMap
    • Hashtable
  • Queue e Deque

    • PriorityQueue
    • ArrayDeque
  • Iterators

    • Iterator
    • ListIterator
  • Comparators e Comparable

    • Ordenação customizada
    • Comparator vs Comparable

🔧 Módulo 5: Exceções

  • Tipos de Exceções

    • Checked exceptions
    • Unchecked exceptions
    • Errors
  • Tratamento de Exceções

    • try-catch-finally
    • try-with-resources
    • Multi-catch
  • Exceções Customizadas

    • Criação de exceções próprias
    • Boas práticas
  • Throw e Throws

    • Lançamento de exceções
    • Propagação de exceções

🎭 Módulo 6: Classes Internas

  • Inner Classes
    • Nested classes
    • Local classes
    • Anonymous classes
    • Static nested classes

🧬 Módulo 7: Generics

  • Introdução a Generics

    • Type parameters
    • Generic classes
    • Generic methods
  • Bounded Types

    • Upper bounded wildcards
    • Lower bounded wildcards
    • Unbounded wildcards
  • Type Erasure

    • Como funciona
    • Limitações

📂 Módulo 8: I/O (Input/Output)

  • File

    • Manipulação de arquivos e diretórios
    • FileWriter e FileReader
    • BufferedWriter e BufferedReader
  • Streams de Bytes

    • FileInputStream e FileOutputStream
    • BufferedInputStream e BufferedOutputStream
  • Serialização

    • ObjectOutputStream
    • ObjectInputStream
    • Serializable interface
  • NIO (New I/O)

    • Path e Paths
    • Files
    • DirectoryStream

🔗 Módulo 9: JDBC

  • Introdução ao JDBC

    • Drivers JDBC
    • Conexão com banco de dados
    • DriverManager
  • Operações CRUD

    • Statement
    • PreparedStatement
    • CallableStatement
  • ResultSet

    • Navegação em resultados
    • Tipos de ResultSet
    • Atualização através do ResultSet
  • Transações

    • Commit e Rollback
    • Controle de transações
  • Connection Pool

    • Boas práticas

🧵 Módulo 10: Threads

  • Conceitos Básicos

    • Criação de threads
    • Thread class vs Runnable interface
    • Estados de uma thread
  • Sincronização

    • synchronized
    • volatile
    • Deadlock
  • Métodos de Controle

    • sleep()
    • join()
    • yield()
    • wait(), notify(), notifyAll()

⚡ Módulo 11: Concorrência

  • Variáveis Atômicas

    • AtomicInteger, AtomicLong, etc.
    • Operações atômicas
  • Locks

    • ReentrantLock
    • ReadWriteLock
    • Conditions
  • Coleções Concorrentes

    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • BlockingQueue
  • Executor Framework

    • ExecutorService
    • ThreadPoolExecutor
    • ScheduledExecutorService

🎯 Módulo 12: Comportamento de Métodos

  • Optional
    • Criação e uso
    • Métodos principais
    • Boas práticas

🚀 Módulo 13: Lambdas e Streams

  • Expressões Lambda

    • Sintaxe
    • Interfaces funcionais
    • Method references
  • Stream API

    • Criação de streams
    • Operações intermediárias (filter, map, sorted, etc.)
    • Operações terminais (collect, forEach, reduce, etc.)
    • Streams paralelos
  • Collectors

    • toList, toSet, toMap
    • groupingBy
    • partitioningBy
    • joining

🛠️ Tecnologias e Ferramentas

  • Java: JDK 17+ (LTS)
  • IDE: IntelliJ IDEA / Eclipse / VS Code
  • Build Tool: Maven (opcional)
  • Banco de Dados: MySQL (para módulos de JDBC)
  • Controle de Versão: Git

📋 Pré-requisitos

Antes de começar, você precisa ter instalado:

⚙️ Como Executar

1. Clone o repositório

git clone https://github.com/DiegoLimaInCode/CursoDevDojo_Java.git
cd CursoDevDojo_Java

2. Abra o projeto na sua IDE

  • IntelliJ IDEA: File → Open → Selecione a pasta do projeto
  • Eclipse: File → Import → Existing Projects into Workspace

3. Execute as classes

Navegue até a pasta src e execute as classes principais de cada módulo.

📁 Estrutura do Projeto

CursoDevDojo_Java/
│
├── pasta/                      # Recursos e arquivos auxiliares
├── src/                        # Código-fonte das aulas
│   ├── fundamentos/           # Módulo 1: Fundamentos
│   ├── orientacaoaobjetos/    # Módulo 2: OO
│   ├── classesutilitarias/    # Módulo 3: Classes Utilitárias
│   ├── collections/           # Módulo 4: Collections
│   ├── excecoes/              # Módulo 5: Exceções
│   ├── classesinternas/       # Módulo 6: Inner Classes
│   ├── generics/              # Módulo 7: Generics
│   ├── io/                    # Módulo 8: I/O
│   ├── jdbc/                  # Módulo 9: JDBC
│   ├── threads/               # Módulo 10: Threads
│   ├── concorrencia/          # Módulo 11: Concorrência
│   └── lambdas/               # Módulo 13: Lambdas e Streams
│
├── .gitignore
├── CursoDevDojo_Java.iml
├── file.txt
└── README.md

📖 Recursos Adicionais

🎥 Links do Curso

📚 Documentação Oficial

🔧 Ferramentas Úteis

💡 Dicas de Estudo

  1. Pratique regularmente: Código não se aprende apenas assistindo, é preciso praticar
  2. Faça seus próprios projetos: Aplique o conhecimento em projetos pessoais
  3. Leia código de outros: Analise código de projetos open source
  4. Participe de comunidades: Faça perguntas e ajude outros desenvolvedores
  5. Mantenha-se atualizado: Java está sempre evoluindo, acompanhe as novidades

🤝 Contribuindo

Contribuições são sempre bem-vindas! Se você encontrou algum erro ou quer adicionar algum exemplo:

  1. Faça um Fork do projeto
  2. Crie uma Branch para sua feature (git checkout -b feature/NovaFeature)
  3. Commit suas mudanças (git commit -m 'Adiciona nova feature')
  4. Push para a Branch (git push origin feature/NovaFeature)
  5. Abra um Pull Request

📝 Licença

Este projeto foi desenvolvido para fins educacionais, seguindo o conteúdo do curso gratuito Maratona Java - Virado no Jiraya do DevDojo Academy.

👨‍💻 Autor

Diego Lima

🙏 Agradecimentos

  • William Suane e toda equipe DevDojo Academy pela disponibilização gratuita de conteúdo de altíssima qualidade
  • Comunidade Java brasileira pela constante troca de conhecimento

⭐ Se este repositório foi útil para você, considere dar uma estrela!

Desenvolvido com ☕ durante o Curso DevDojo - Maratona Java

🔝 Voltar ao topo

About

todas as aulas assistidas do dev dojo

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages