Java – Guia rápido

Introdução

Java é uma linguagem de programação orientada a objetosmultiplataforma e de alto nível, criada pela Sun Microsystems em 1995 (atualmente mantida pela Oracle). É amplamente usada em aplicações empresariais, mobile (Android), web, IoT e big data. Sua filosofia “write once, run anywhere” (escreva uma vez, execute em qualquer lugar) é garantida pela JVM (Máquina Virtual Java).


Conceitos Fundamentais

1. JDK (Java Development Kit)

É o kit de desenvolvimento completo para Java. Inclui:

  • JRE (Java Runtime Environment): Ambiente de execução para programas Java.

  • Compilador (javac): Traduz código-fonte (.java) para bytecode (.class).

  • Bibliotecas padrão: Coleção de classes (e.g., java.utiljava.io).

  • Ferramentas extrasjar (empacotamento), javadoc (documentação), debugger.

Use o JDK para desenvolver programas Java.

2. JVM (Java Virtual Machine)

É a “máquina virtual” que executa o bytecode Java. Traduz o bytecode para instruções nativas do sistema operacional. Responsável por:

  • Gerenciamento de memória (coleta de lixo).

  • Portabilidade (o mesmo bytecode roda em Windows, Linux, macOS).

  • Segurança e otimização em tempo de execução (JIT Compiler).

3. JRE (Java Runtime Environment)

Contém apenas os componentes necessários para executar aplicações Java (JVM + bibliotecas básicas). Não inclui ferramentas de desenvolvimento.

Relacionamento:
JDK = JRE + Ferramentas de Desenvolvimento
JRE = JVM + Bibliotecas Padrão


Sintaxe Básica com Exemplos

Todo programa Java é composto por classes, métodos e pacotes. O ponto de entrada é sempre o método public static void main(String[] args). Exemplo mínimo:

java
public class OlaMundo {
    public static void main(String[] args) {
        System.out.println("Olá, Mundo!");
    }
}

Esse código mostra como declarar uma classe e imprimir texto no console.

 

Tipos primitivos e variáveis

Java oferece oito tipos primitivos: byte, short, int, long, float, double, char e boolean. Eles armazenam valores simples e têm tamanhos fixos, garantindo portabilidade. Variáveis são declaradas com o tipo seguido de nome, por exemplo: int idade = 30;. Além dos primitivos, há tipos de referência como String e objetos de classes.

 

Operadores e expressões

Java suporta operadores aritméticos (+, -, *, /, %), relacionais (==, !=, >, <) e lógicos (&&, ||, !). Expressões combinam variáveis, literais e operadores, produzindo valores avaliados em tempo de execução. O operador instanceof verifica se um objeto é instância de determinada classe. O uso correto de parênteses garante precedência e legibilidade.

 

Estruturas de controle

Estruturas condicionais usam if, else if, else e switch para ramificar o fluxo. Laços de repetição são feitos com for, while e do-while. O for-each (for (Tipo item : colecao)) simplifica iterações em arrays e coleções. Instruções break e continue ajustam o fluxo dentro de loops.

 

Programação Orientada a Objetos

Classes e objetos

Classes definem tipos de dados personalizados, como:

java
public class Pessoa {
    String nome;
    int idade;
    
    public Pessoa(String nome, int idade) {
        this.nome = nome;
        this.idade = idade;
    }
    
    public void apresentar() {
        System.out.println("Meu nome é " + nome);
    }
}

Objetos são instâncias de classes, criados com new Pessoa("Ana", 25).

Encapsulamento

Encapsulamento esconde detalhes internos, expondo apenas métodos públicos (get/set). Isso garante controle de acesso e manutenção futura sem quebrar clientes do código.

Herança

Herança permite a criação de hierarquias de classes. Exemplo:

java
public class Estudante extends Pessoa {
    String matricula;
    
    public Estudante(String nome, int idade, String matricula) {
        super(nome, idade);
        this.matricula = matricula;
    }
}

Polimorfismo

Polimorfismo dá a capacidade de usar um objeto de várias formas através de métodos sobrescritos ou interfaces.

Abstração

Abstração foca no que um objeto faz, não em como faz. Classes abstratas e interfaces definem contratos que implementações concretas devem seguir.

 

Tratamento de Exceções

Java utiliza try, catch, finally e throw para tratar condições excepcionais. Exceções verificadas (IOException) devem ser declaradas ou tratadas, enquanto não verificadas (RuntimeException) são opcionais. Exemplo:

java
try {
    int divisao = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("Erro de divisão: " + e.getMessage());
} finally {
    System.out.println("Bloco finally executado sempre");
}
 

Coleções e Generics

O pacote java.util traz interfaces (List, Set, Map) e implementações (ArrayList, HashSet, HashMap).

InterfaceImplementaçãoCaracterística
ListArrayList, LinkedListOrdenação e elementos duplicados
SetHashSet, TreeSetSem duplicação
MapHashMap, TreeMapChave-valor
 

Generics (List<String>) oferecem segurança de tipos em tempo de compilação.

 

Expressões Lambda e Streams (Java 8+)

Lambdas permitem funções anônimas com sintaxe concisa:

java
List<Integer> nums = Arrays.asList(1, 2, 3, 4);
nums.stream()
    .filter(n -> n % 2 == 0)
    .forEach(System.out::println);

Streams facilitam operações funcionais como map, filter e reduce, encadeando transformações.

 

Concorrência e Threads

Java suporta threads nativas (java.lang.Thread) e mecanismos avançados (ExecutorService). Exemplo de Runnable:

java
Runnable tarefa = () -> {
    System.out.println("Executando em thread: " + Thread.currentThread().getName());
};
new Thread(tarefa).start();

Pacotes java.util.concurrent trazem estruturas escaláveis como ConcurrentHashMap e CountDownLatch.

 

Ferramentas e Ecossistema

  • Maven e Gradle: gerenciamento de dependências e build.

  • JUnit: testes unitários.

  • Spring: framework para aplicações web e microserviços.

  • Hibernate: mapeamento objeto-relacional.

  • IDE: IntelliJ IDEA, Eclipse e VS Code são escolhas populares para Java.


Links para Download

  1. JDK (Oracle):
    Oracle JDK 21
    (Recomendado para produção)

  2. OpenJDK (Gratuito):
    Adoptium JDK
    Amazon Corretto

  3. Ambientes de Desenvolvimento (IDEs):


Por Que Java?

  • Robustez: Checagem de erros em tempo de compilação e execução.

  • Ecosistema: Frameworks como Spring (web), Hibernate (banco de dados), Android SDK.

  • Performance: JVM otimiza código dinamicamente (JIT Compiler).

  • Comunidade: Uma das maiores do mundo, com vasta documentação e bibliotecas.


Como Compilar e Executar (via Terminal)

  1. Salve o código em HelloWorld.java.

  2. Compile:

    bash
     
    javac HelloWorld.java  # Gera HelloWorld.class
  3. Execute:

    bash
     
    java HelloWorld  # Saída: "Olá, Mundo!"

Conclusão

Java continua dominando aplicações críticas graças à sua portabilidade, segurança e evolução constante. Entender JDK (desenvolvimento), JVM (execução) e JRE (ambiente) é essencial para qualquer desenvolvedor. Comece instalando o JDK, pratique a sintaxe e explore frameworks para criar aplicações poderosas!

Deixo como dica de curso gratuito com certificado de Java básico e intermediário o site da Loiane Groner.

Últimos Artigos

Deixe sua dúvida ou opinião

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Post anterior
Próximo post

Copyright © 2025 - Pablo Vinícius