Pular para o conteúdo

Introdução ao Java

Java é uma das linguagens de programação mais populares e amplamente utilizadas no mundo. Criada com o objetivo de ser portável, segura e robusta, Java permite que você escreva um programa uma vez e execute em praticamente qualquer plataforma, desde computadores desktop até dispositivos móveis e servidores corporativos.

Neste primeiro tópico, você vai entender o que é Java, suas principais características, como funciona o processo de desenvolvimento e os conceitos fundamentais que tornam esta linguagem tão poderosa e versátil.

Se você está começando sua jornada em programação, Java é uma excelente escolha por sua sintaxe clara, vasta documentação e enorme comunidade de desenvolvedores.

Java é uma linguagem de programação de alto nível, orientada a objetos, criada na década de 1990 por uma equipe liderada por James Gosling na empresa Sun Microsystems (posteriormente adquirida pela Oracle).

Inicialmente, Java foi desenvolvida para dispositivos eletrônicos embarcados, mas rapidamente ganhou popularidade com o crescimento da internet, tornando-se uma das linguagens mais utilizadas para:

  • Sistemas corporativos
  • Aplicações web
  • Desenvolvimento mobile (Android)
  • Sistemas distribuídos
  • Backend de aplicações

Um dos lemas mais conhecidos da linguagem é:

WORA - Write Once, Run Anywhere

(Escreva uma vez, execute em qualquer lugar)

Isso significa que um programa Java pode ser executado em qualquer sistema operacional que possua uma JVM (Java Virtual Machine) instalada, sem necessidade de modificações no código.

Java não é compilado diretamente para código de máquina específico de um sistema operacional.

Como funciona:

  1. O código Java é compilado para bytecode
  2. O bytecode é executado pela JVM

Isso permite que o mesmo programa funcione em:

  • ✅ Windows
  • ✅ Linux
  • ✅ macOS
  • ✅ Servidores
  • ✅ Dispositivos embarcados

Imagine que você escreve uma carta em um idioma universal (bytecode). Cada país (sistema operacional) tem um tradutor especializado (JVM) que consegue ler e executar sua carta. Você escreve apenas uma vez, mas todos conseguem entender!

Java foi projetado seguindo os conceitos da Programação Orientada a Objetos (POO).

Isso significa que programas são organizados em:

  • Classes: Modelos ou estruturas
  • Objetos: Instâncias das classes
  • Métodos: Ações que os objetos podem realizar
  • Atributos: Características dos objetos

Benefícios da POO:

  • 📦 Reutilização de código
  • 🔧 Facilidade de manutenção
  • 📈 Escalabilidade
  • 🗂️ Organização lógica

Java possui gerenciamento automático de memória.

O Garbage Collector (GC) é responsável por:

  • Liberar memória de objetos que não estão mais sendo utilizados
  • Evitar vazamentos de memória (memory leaks)
  • Reduzir erros comuns como ponteiros inválidos

Vantagem: O programador não precisa desalocar memória manualmente, diferente de linguagens como C ou C++.

Java possui suporte nativo para execução concorrente.

Isso significa que um programa pode executar múltiplas tarefas ao mesmo tempo, por exemplo:

  • Processar dados enquanto baixa arquivos
  • Executar várias requisições simultaneamente
  • Criar aplicações responsivas

Java possui um sistema robusto de tratamento de erros chamado Exceptions.

Permite:

  • Detectar erros em tempo de execução
  • Controlar falhas de forma segura
  • Evitar que o sistema pare inesperadamente

Exemplos de situações tratadas:

  • Arquivo não encontrado
  • Divisão por zero
  • Problemas de rede

O fluxo de desenvolvimento Java segue etapas bem definidas:

Todo código Java é escrito em arquivos de texto com extensão .java.

Veja como é o programa mais simples possível em Java — o famoso “Olá, Mundo!”:

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

Salve esse conteúdo em um arquivo chamado OlaMundo.java. Não se preocupe em entender cada palavra agora — você vai aprender o que public, class e static significam nos próximos tópicos. Por enquanto, saiba que o Java sempre começa pelo método main.

O compilador Java (javac) transforma o código fonte em bytecode.

Terminal window
javac OlaMundo.java

Isso gera um arquivo OlaMundo.class com o bytecode — uma linguagem intermediária que a JVM entende.

O arquivo .class é executado pela JVM:

Terminal window
java OlaMundo

Saída esperada:

Olá, Mundo!

O arquivo .class não contém código de máquina nativo, mas bytecode — e é por isso que o mesmo arquivo roda em qualquer sistema que tenha a JVM instalada.

A JVM é o coração do Java.

Ela é responsável por:

  • ⚙️ Executar bytecode
  • 💾 Gerenciar memória
  • 🗑️ Executar Garbage Collector
  • 🔄 Controlar threads
  • 🌍 Garantir portabilidade

Importante: Cada sistema operacional possui sua própria implementação de JVM, mas todas executam o mesmo bytecode Java.

O JDK é o kit completo para desenvolvimento Java.

Ele contém:

  • Compilador (javac)
  • JVM
  • Bibliotecas padrão
  • Ferramentas de desenvolvimento (javadoc, debugger, etc.)

Se você quer programar em Java, você precisa do JDK.

O JRE é o ambiente de execução.

Contém:

  • JVM
  • Bibliotecas necessárias para rodar programas

Não contém ferramentas de desenvolvimento.

Nota: Nas versões modernas do Java, o JRE está embutido no JDK.

Java existe em diferentes versões para diferentes propósitos. No começo da sua jornada, você vai trabalhar com o Java SE (Standard Edition) — a base da linguagem, com toda a sintaxe, bibliotecas fundamentais e APIs principais.

As demais plataformas (Jakarta EE para sistemas corporativos, Java ME para dispositivos embarcados, JavaFX para interfaces gráficas) são especializações que fazem sentido explorar depois que você dominar o Java SE.

JDK (Java Development Kit)
├── JRE (Java Runtime Environment)
│ ├── JVM (Java Virtual Machine)
│ └── Bibliotecas de Classe
└── Ferramentas de Desenvolvimento
├── javac (compilador)
├── javadoc (documentação)
└── debugger, etc.

Neste tópico, você aprendeu:

  • ✅ Java é uma linguagem portável, robusta e orientada a objetos
  • ✅ O lema WORA (Write Once, Run Anywhere) é possível graças à JVM
  • ✅ Java é compilada para bytecode (javac) e executada pela JVM (java)
  • ✅ JDK é para desenvolvimento, JRE é para execução (nas versões modernas, o JRE já vem embutido no JDK)
  • ✅ Java possui gerenciamento automático de memória via Garbage Collector
  • ✅ Para iniciantes, o foco é o Java SE — as demais plataformas vêm depois

Agora que você entende o que é Java e suas características principais, está pronto para:

  1. Instalar o JDK e configurar seu ambiente de desenvolvimento
  2. Aprender sobre variáveis e tipos de dados
  3. Entender a sintaxe básica do Java

Antes de avançar, tente responder mentalmente:

  1. O que significa WORA e o que torna isso possível?
  2. Qual a diferença entre JDK e JRE? Qual você precisa instalar para programar?
  3. O que o comando javac OlaMundo.java produz?
  4. Por que o mesmo arquivo .class funciona no Windows e no Linux?
Ver respostas
  1. WORA significa “Write Once, Run Anywhere”. É possível graças à JVM — cada sistema operacional tem sua própria JVM, mas todas executam o mesmo bytecode.
  2. O JDK inclui tudo para desenvolver (compilador, JVM, bibliotecas). O JRE só executa programas. Para programar, você precisa do JDK.
  3. O javac gera o arquivo OlaMundo.class com o bytecode — a versão compilada do seu programa.
  4. Porque o .class contém bytecode, não código de máquina nativo. A JVM de cada sistema operacional sabe interpretar esse bytecode.
Java e JavaScript são a mesma coisa?

Não! Apesar do nome similar, são linguagens completamente diferentes. Java é uma linguagem de programação completa, enquanto JavaScript foi criada principalmente para navegadores web (embora hoje também rode em servidores).

Java ainda é relevante em 2026?

Sim! Java continua sendo uma das linguagens mais utilizadas no mundo, especialmente em sistemas corporativos, Android, sistemas bancários e aplicações de grande escala.

É difícil aprender Java?

Java tem uma curva de aprendizado moderada. Com os conceitos básicos de lógica de programação e POO, você consegue criar aplicações funcionais. Este repositório foi criado justamente para facilitar seu aprendizado!