Java O que é Java
Antes de escrever o primeiro programa, vale saber com quem você está falando. Java é duas coisas ao mesmo tempo: uma linguagem, o idioma em que você escreve as instruções, e uma plataforma, o conjunto de programas que faz essas instruções rodarem em qualquer computador. Nesta aula você conhece as duas, a história do Java e onde ele está no seu dia a dia.
- O que é um programa, uma linguagem de programação e um código-fonte.
- Por que se diz que Java é uma linguagem e também uma plataforma.
- A história: Sun, James Gosling, 1995, Oracle e OpenJDK.
- O que quer dizer "escreva uma vez, rode em qualquer lugar".
- Onde o Java é usado hoje e por que Java não é JavaScript.
- A ideia de "compilado e interpretado" (bytecode e JIT), sem detalhes técnicos.
A ideia: dar ordens ao computador
Um computador é muito rápido e muito obediente, mas não entende português. Ele só sabe executar instruções minúsculas, escritas em números ("some estes dois números", "guarde este valor ali"). Escrever direto nesses números seria como montar um móvel lendo um manual em código Morse.
Uma linguagem de programação é um idioma intermediário: parecido o bastante com o inglês para uma pessoa ler e escrever, e preciso o bastante para um programa traduzi-lo, sem ambiguidade, para as instruções da máquina. O texto que você escreve nessa linguagem se chama código-fonte (a "fonte" de onde o programa sai), e o resultado pronto para rodar é o programa.
Pense numa receita de bolo. A receita é o código-fonte: uma lista de passos, numa ordem, escrita para alguém seguir. A cozinheira que segue a receita é o computador. Se a receita diz "bata 3 ovos" e você escreveu "bata 3 ovo", uma pessoa entenderia; o computador não. Por isso as linguagens têm regras rígidas de escrita, a sintaxe (veja Sintaxe e Estrutura).
Este é um programa Java completo. Por enquanto, olhe só para as três linhas do meio: cada uma escreve uma frase na tela, na ordem em que aparecem.
public class Main {
public static void main(String[] args) {
System.out.println("Loja da Ana");
System.out.println("Maçã: 3 reais");
System.out.println("Banana: 2 reais");
}
}
$ java Main.java Loja da Ana Maçã: 3 reais Banana: 2 reais
O computador seguiu as instruções de cima para baixo, como a receita. Tudo o que está em volta dessas três linhas (public class Main, public static void main, as chaves { }) é a estrutura obrigatória de um programa Java, explicada palavra por palavra em Olá, Mundo.
Brinque com o código: mude os preços, troque as frutas, acrescente uma linha System.out.println("Uva: 5 reais"); antes da chave } e clique em Rodar. Se aparecer um erro, confira se cada linha nova termina com ; e se o texto está entre aspas.
public class Main {
public static void main(String[] args) {
System.out.println("Loja da Ana");
System.out.println("Maçã: 3 reais");
System.out.println("Banana: 2 reais");
}
}
Java é uma linguagem e uma plataforma
Quando alguém diz "eu programo em Java", está falando da linguagem: as palavras (class, if, while), os símbolos e as regras para combiná-los. Quando alguém diz "instale o Java para rodar este programa", está falando da plataforma: os programas que transformam e executam o código.
| Parte | O que é | Exemplo |
|---|---|---|
| A linguagem | As regras para escrever o código-fonte, nos arquivos .java. | System.out.println("Oi"); |
O compilador (javac) | O tradutor: lê os arquivos .java e gera arquivos .class, com bytecode. | javac Main.java |
| A máquina virtual (JVM) | O programa que executa o bytecode no seu computador. | java Main |
| A biblioteca padrão | Milhares de classes prontas: textos, contas, listas, datas, arquivos, rede. | Math.sqrt(16), LocalDate.now() |
O compilador, a máquina virtual e a biblioteca vêm juntos num pacote chamado JDK. A próxima aula, JDK, JRE e JVM, abre esse pacote e mostra cada peça.
Um pouco de história
Em 1991, a empresa americana Sun Microsystems montou um pequeno grupo, o Green Project ("projeto verde"), para criar software para aparelhos eletrônicos: TVs a cabo, controles remotos, eletrodomésticos. Esses aparelhos usavam processadores de fabricantes diferentes, e reescrever o programa para cada um era caro. O engenheiro canadense James Gosling liderou a criação de uma linguagem nova, que rodasse em qualquer um deles. Ela se chamou primeiro Oak ("carvalho", por causa de uma árvore que Gosling via da janela).
O nome Oak já pertencia a outra empresa, e a equipe escolheu Java, o nome de uma ilha da Indonésia famosa pelo café (em inglês, java também é gíria para "café"). Por isso o símbolo do Java é uma xícara fumegante. O mascote é o Duke, um bonequinho preto e branco com nariz vermelho.
Os aparelhos não decolaram, mas a internet sim. Em 1995, a Sun lançou o Java publicamente, com uma novidade que impressionou: pequenos programas Java (os applets) rodavam dentro das páginas da web, em qualquer sistema. Os applets sumiram com o tempo, mas a linguagem cresceu em outro lugar: nos servidores das empresas.
| Ano | O que aconteceu |
|---|---|
| 1991 | Começa o Green Project na Sun; James Gosling cria a linguagem Oak. |
| 1995 | Lançamento público com o nome Java e o lema "escreva uma vez, rode em qualquer lugar". |
| 1996 | Sai o JDK 1.0, a primeira versão oficial para programadores. |
| 2006–2007 | A Sun libera o código do Java como software livre (licença GPL): nasce o OpenJDK. |
| 2010 | A Oracle compra a Sun e passa a comandar o Java. |
| 2014 | Java 8: lambdas e streams, uma das versões mais usadas da história. |
| 2018 | Começa o ritmo de uma versão nova a cada seis meses (março e setembro). |
| 2025 | Java 25, a versão de suporte longo (LTS) que este guia ensina. |
Quem é dono do Java hoje?
A marca "Java" é da Oracle, mas o código é livre. O OpenJDK é o projeto aberto onde o Java é desenvolvido, com programadores da Oracle, da Red Hat, da Amazon, da Microsoft, do Google, da IBM e de muitas outras empresas. A partir do código do OpenJDK, várias organizações distribuem o seu próprio JDK, quase todos gratuitos. O deste guia é o Eclipse Temurin, da fundação Eclipse. Você vai conhecer os outros em JDK, JRE e JVM.
"Escreva uma vez, rode em qualquer lugar"
O lema do Java em 1995 era Write once, run anywhere: "escreva uma vez, rode em qualquer lugar". Para entender por que isso era novidade, compare com a forma tradicional.
Em linguagens como C, o compilador traduz o código-fonte direto para as instruções de um processador e um sistema. O programa compilado para Linux num processador Intel não roda no Windows, nem num Mac com processador Apple. Para cada combinação, é preciso compilar de novo.
O Java separou a tradução em duas etapas:
Main.java ──javac──► Main.class ──► JVM do Linux ──► roda no Linux
(você escreve) (bytecode) ──► JVM do Windows ──► roda no Windows
──► JVM do macOS ──► roda no macOS
- O
javactraduz o código para bytecode: instruções para uma máquina que não existe de verdade, uma máquina "virtual", igual em todo lugar. - Cada sistema tem a sua JVM (Java Virtual Machine, máquina virtual Java), que sabe executar esse bytecode naquele processador.
O mesmo Main.class roda em qualquer sistema que tenha uma JVM. O comando file do Linux, que descreve o tipo de um arquivo, mostra a diferença:
$ file Main.class Main.class: compiled Java class data, version 69.0 (Java SE 25) $ file -L /usr/bin/ls /usr/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=062a2939ec6dab624820ce5afb8e521a13e230f3, for GNU/Linux 3.2.0, stripped
O Main.class é "dados de classe Java compilada, versão 69 (Java SE 25)": não diz nada sobre processador nem sistema. Já o programa ls (que lista arquivos, escrito em C) é um executável "x86-64" "para GNU/Linux": só roda nesse tipo de máquina. O número 69.0 é a versão do formato do bytecode; ele aparece de novo em javac e java, num erro bem comum.
"Qualquer lugar" quer dizer "qualquer lugar com uma JVM de versão igual ou mais nova". Um programa compilado para o Java 25 não roda num Java 17. E um programa que lê o arquivo C:\notas.txt só vai achar esse arquivo no Windows. A portabilidade é do bytecode, não das decisões que você toma no código.
Compilado ou interpretado? Os dois
Você vai ouvir que Java é "compilado" e também que é "interpretado". As duas coisas são verdade, em momentos diferentes. A ideia, sem detalhes:
- Compilação (antes de rodar): o
javacconfere o código inteiro, aponta os erros e gera o bytecode. Se houver um erro de digitação, o programa nem chega a rodar. - Interpretação (enquanto roda): a JVM começa lendo o bytecode instrução por instrução e executando, como um intérprete que traduz frase por frase.
- JIT (enquanto roda): a JVM repara quais partes do programa rodam muitas vezes (um laço que repete um milhão de vezes, por exemplo) e traduz essas partes para instruções nativas do processador, que rodam muito mais rápido. Isso se chama compilação JIT, de just in time, "na hora certa".
Dá para ver essa mistura na resposta do java -version:
$ java -version openjdk version "25.0.4.1" 2026-08-18 LTS OpenJDK Runtime Environment Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS) OpenJDK 64-Bit Server VM Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS, mixed mode, sharing) « "modo misto": interpreta e compila com JIT
Mixed mode ("modo misto") é exatamente isso: o interpretador e o compilador JIT trabalhando juntos. Por causa do JIT, um programa Java que roda por bastante tempo (como um servidor) chega perto da velocidade de programas em C. Você não precisa fazer nada para ligar o JIT: ele já vem ligado.
Onde o Java é usado
Você provavelmente usa programas em Java todos os dias sem saber. Alguns exemplos:
| Onde | Como o Java aparece |
|---|---|
| Bancos e pagamentos | Boa parte dos sistemas de bancos, cartões e bolsas de valores roda em Java nos servidores. São sistemas grandes, que precisam funcionar por anos sem parar. |
| Lojas virtuais e serviços web | O "lado de trás" (o servidor) de sites de compras, de companhias aéreas e de serviços do governo, muitas vezes com o framework Spring. |
| Android | Os aplicativos Android foram escritos em Java desde o começo. Hoje o Google recomenda o Kotlin, uma linguagem "prima" que conversa com o Java, e muitos apps ainda são em Java. |
| Big data | Ferramentas que processam quantidades enormes de dados, como Hadoop, Kafka, Elasticsearch e Spark, rodam na JVM. |
| Jogos | O Minecraft original (a "Java Edition") é escrito em Java, e os mods da comunidade também. |
| Ferramentas de programação | O IntelliJ IDEA, o Eclipse e o NetBeans, editores que você vai conhecer em Editores e IDEs, são feitos em Java. |
| Cartões e aparelhos | Chips de cartão de banco e de celular (SIM) rodam uma versão minúscula do Java, o Java Card. |
Por que aprender Java como primeira linguagem
- O compilador pega erros cedo. Em Java, cada variável tem um tipo declarado, e o
javacreclama antes de o programa rodar quando você mistura texto com número. Para quem está aprendendo, isso é um professor apontando o erro na hora. - Mensagens de erro claras, sempre com o arquivo, a linha e um
^embaixo do problema (veja Lendo Erros do javac). - É estável. Um programa escrito em Java há 20 anos, na maioria dos casos, ainda compila hoje.
- Mercado de trabalho. Java está há décadas entre as linguagens mais pedidas em vagas, principalmente em empresas grandes.
- Abre portas. C#, Kotlin, C++ e TypeScript se parecem muito com Java. Quem aprende um, aprende o outro rápido.
Java não é JavaScript
É a confusão mais comum de todas. Os nomes se parecem por uma decisão de marketing de 1995: a empresa Netscape criou uma linguagem para os navegadores e, para aproveitar a fama do Java, chamou-a de JavaScript. Fora o nome e alguns símbolos parecidos (chaves, ponto e vírgula), são linguagens diferentes, feitas por empresas diferentes, para usos diferentes. Uma piada antiga resume: "Java está para JavaScript assim como carro está para carpete".
| Java | JavaScript | |
|---|---|---|
| Criada por | James Gosling, na Sun (1995) | Brendan Eich, na Netscape (1995) |
| Onde roda | Na JVM: servidores, computadores, Android | No navegador (e em servidores com o Node.js) |
| Como roda | Compila com javac antes, depois a JVM executa | O navegador lê o código-fonte direto |
| Tipos | Cada variável tem um tipo fixo, declarado: int idade = 29; | A variável aceita qualquer coisa: let idade = 29; |
| Erro de tipo | Aparece na compilação, antes de rodar | Aparece (ou não) só quando aquela linha roda |
| Escrever na tela | System.out.println("Oi"); | console.log("Oi"); |
| Arquivos | .java (código) e .class (bytecode) | .js |
Quando uma vaga pede "Java", não serve JavaScript, e vice-versa. Neste guia, tudo é Java.
Missão: o programa abaixo está incompleto. Troque os dois ??? para ele mostrar Java nasceu em 1995 e Criador: James Gosling. Mantenha as aspas e o ; do fim de cada linha.
public class Main {
public static void main(String[] args) {
System.out.println("Java nasceu em ???");
System.out.println("Criador: ???");
}
}
public class Main {
public static void main(String[] args) {
System.out.println("Java nasceu em 1995");
System.out.println("Criador: James Gosling");
}
}
Exercícios
1. Qual programa traduz o código .java para bytecode?
2. Por que o mesmo Main.class roda no Linux, no Windows e no macOS?
3. Sobre Java e JavaScript, qual frase é verdadeira?
4. O que a JVM faz com as partes do programa que rodam muitas vezes?
5. Quem desenvolve o Java hoje?
Resumo
- Uma linguagem de programação é um idioma preciso para dar instruções ao computador; o texto escrito nela é o código-fonte.
- Java é uma linguagem (as regras dos arquivos
.java) e uma plataforma (compiladorjavac, máquina virtual JVM e biblioteca padrão). - Criado por James Gosling na Sun, lançado em 1995; a Oracle comprou a Sun em 2010; o código é livre no projeto OpenJDK.
- "Escreva uma vez, rode em qualquer lugar": o
javacgera bytecode, e a JVM de cada sistema o executa. - Java é compilado (para bytecode) e depois interpretado e compilado de novo pelo JIT enquanto roda (mixed mode).
- Java está em bancos, servidores, Android, big data e no Minecraft.
- Java e JavaScript são linguagens diferentes.