# **Curso de Java: Do Básico ao Intermediário**
## **Módulo 1: Introdução ao Java**
### **Aula 1: O que é Java?**
- História e características do Java
- Plataforma JVM (Java Virtual Machine)
- JDK vs. JRE vs. JVM
### **Aula 2: Configurando o Ambiente**
- Instalação do JDK
- Configurando variáveis de ambiente (`JAVA_HOME`, `PATH`)
- Primeiro programa: "Hello, World!"
📌 **Exercício Prático:**
```java
public class HelloWorld {
public static void main(String[] args) {
[Link]("Hello, World!");
```
---
## **Módulo 2: Fundamentos da Linguagem**
### **Aula 3: Sintaxe Básica**
- Estrutura de um programa Java
- Comentários (//, /* */, /** */)
- Palavras-chave e identificadores
### **Aula 4: Variáveis e Tipos de Dados**
- Tipos primitivos (`int`, `double`, `char`, `boolean`)
- Declaração e inicialização
- Strings (`String`)
📌 **Exemplo:**
```java
int idade = 25;
double altura = 1.75;
String nome = "João";
```
### **Aula 5: Operadores**
- Aritméticos (`+`, `-`, `*`, `/`, `%`)
- Relacionais (`==`, `!=`, `>`, `<`)
- Lógicos (`&&`, `||`, `!`)
---
## **Módulo 3: Controle de Fluxo**
### **Aula 6: Estruturas Condicionais**
- `if`, `else if`, `else`
- `switch-case`
📌 **Exemplo:**
```java
int nota = 7;
if (nota >= 6) {
[Link]("Aprovado!");
} else {
[Link]("Reprovado.");
```
### **Aula 7: Loops (Laços de Repetição)**
- `for`, `while`, `do-while`
- `break` e `continue`
📌 **Exemplo:**
```java
for (int i = 1; i <= 5; i++) {
[Link]("Contagem: " + i);
```
---
## **Módulo 4: Estruturas de Dados**
### **Aula 8: Arrays**
- Arrays unidimensionais e multidimensionais
- Percorrendo arrays com `for` e `for-each`
📌 **Exemplo:**
```java
int[] numeros = {1, 2, 3, 4, 5};
for (int num : numeros) {
[Link](num);
```
### **Aula 9: Listas e Coleções**
- `ArrayList`, `LinkedList`
- Métodos principais (`add`, `remove`, `get`)
📌 **Exemplo:**
```java
import [Link];
ArrayList<String> nomes = new ArrayList<>();
[Link]("Maria");
[Link]("José");
[Link]([Link](0)); // Maria
```
---
## **Módulo 5: Programação Orientada a Objetos (POO)**
### **Aula 10: Classes e Objetos**
- Definição de classes e objetos
- Atributos e métodos
📌 **Exemplo:**
```java
public class Carro {
String modelo;
int ano;
void acelerar() {
[Link]("Acelerando...");
// Uso:
Carro meuCarro = new Carro();
[Link] = "Fusca";
[Link]();
```
### **Aula 11: Encapsulamento, Herança e Polimorfismo**
- `private`, `public`, `protected`
- `extends` (herança)
- `@Override` (polimorfismo)
📌 **Exemplo:**
```java
class Animal {
void emitirSom() {
[Link]("Som genérico");
class Cachorro extends Animal {
@Override
void emitirSom() {
[Link]("Au Au!");
}
```
---
## **Módulo 6: Tratamento de Exceções**
### **Aula 12: Try-Catch e Finally**
- `try`, `catch`, `finally`
- Exceções comuns (`NullPointerException`,
`ArrayIndexOutOfBoundsException`)
📌 **Exemplo:**
```java
try {
int divisao = 10 / 0;
} catch (ArithmeticException e) {
[Link]("Erro: Divisão por zero!");
```
---
## **Módulo 7: Introdução a Banco de Dados (JDBC)**
### **Aula 13: Conexão com MySQL**
- Driver JDBC
- `Connection`, `Statement`, `ResultSet`
📌 **Exemplo:**
```java
import [Link].*;
public class ConexaoBD {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/meubanco";
String user = "root";
String password = "senha";
try (Connection conn = [Link](url, user,
password)) {
[Link]("Conectado ao banco de dados!");
} catch (SQLException e) {
[Link]("Erro na conexão: " + [Link]());
```
---
## **Projeto Final: Criando um Sistema Simples**
📌 **Sistema de Cadastro de Alunos**
- Classes: `Aluno`, `BancoDeDados`
- Funcionalidades:
- Cadastrar aluno
- Listar alunos
- Buscar por nome
---
### **Recursos Adicionais**
- **Livros:** *Java: Como Programar (Deitel)*
- **Ferramentas:** Eclipse, IntelliJ IDEA, VS Code
- **Pratique:**
[HackerRank]([Link]
of-java), [LeetCode]([Link]
---
**Próximos Passos:**
✔ Aprofundar em **JavaFX** (interfaces gráficas)
✔ Explorar **Spring Boot** (backend moderno)
✔ Estudar **Android** (desenvolvimento mobile)